openapi: 3.0.0
servers:
  - url: https://neutrinoapi.net
info:
  contact:
    email: ops@neutrinoapi.com
    name: Neutrino API
    url: https://www.neutrinoapi.com/
  description: The general-purpose API
  title: Neutrino API
  version: 3.6.4
  x-apisguru-categories:
    - email
    - messaging
    - telecom
    - location
    - text
  x-logo:
    backgroundColor: "#FFFFFF"
    url: https://www.neutrinoapi.com/img/NEUTRINO_LOGO_NOBG_126x65.png
  x-origin:
    - format: openapi
      url: https://www.neutrinoapi.com/api/swagger.json
      version: "3.0"
  x-providerName: neutrinoapi.net
security:
  - api-key: []
    user-id: []
tags:
  - description: ""
    name: Imaging
  - description: ""
    name: Telephony
  - description: ""
    name: Data Tools
  - description: ""
    name: Security and Networking
  - description: ""
    name: Geolocation
  - description: ""
    name: E-commerce
  - description: ""
    name: WWW
paths:
  /bad-word-filter:
    post:
      deprecated: false
      description: Detect bad words, swear words and profanity in a given text
      operationId: BadWordFilter
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                catalog:
                  default: strict
                  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
                censor-character:
                  description: The character to use to censor out the bad words found
                  type: string
                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
              required:
                - content
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BadWordFilterResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Bad Word Filter
      tags:
        - Data Tools
  /bin-list-download:
    get:
      deprecated: false
      description: Download our entire BIN database for direct use on your own systems
      operationId: BINListDownload
      parameters:
        - 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
          in: query
          name: include-iso3
          required: false
          schema:
            default: false
            type: boolean
        - 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)
          in: query
          name: include-8digit
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                default: ""
                format: binary
                type: string
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: BIN List Download
      tags:
        - E-commerce
  /bin-lookup:
    get:
      deprecated: false
      description: Perform a BIN (Bank Identification Number) or IIN (Issuer Identification Number) lookup
      operationId: BINLookup
      parameters:
        - 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
          in: query
          name: bin-number
          required: true
          schema:
            type: string
        - description: Pass in the customers IP address and we will return some extra information about them
          in: query
          name: customer-ip
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BINLookupResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: BIN Lookup
      tags:
        - E-commerce
  /browser-bot:
    post:
      deprecated: false
      description: Browser bot can extract content, interact with keyboard and mouse events, and execute JavaScript on a website
      operationId: BrowserBot
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                delay:
                  default: 3
                  description: Delay in seconds to wait before capturing any page data, executing selectors or JavaScript
                  format: int32
                  type: integer
                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> <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>"
                  items:
                    type: string
                  type: array
                ignore-certificate-errors:
                  default: false
                  description: Ignore any TLS/SSL certificate errors and load the page anyway
                  type: boolean
                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
                timeout:
                  default: 30
                  description: Timeout in seconds. Give up if still trying to load the page after this number of seconds
                  format: int32
                  type: integer
                url:
                  description: The URL to load
                  type: string
                user-agent:
                  description: Override the browsers default user-agent string with this one
                  type: string
              required:
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BrowserBotResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Browser Bot
      tags:
        - WWW
  /convert:
    get:
      deprecated: false
      description: A currency and unit conversion tool
      operationId: Convert
      parameters:
        - description: The value to convert from (e.g. 10.95)
          in: query
          name: from-value
          required: true
          schema:
            type: string
        - description: The type of the value to convert from (e.g. USD)
          in: query
          name: from-type
          required: true
          schema:
            type: string
        - description: The type to convert to (e.g. EUR)
          in: query
          name: to-type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConvertResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Convert
      tags:
        - E-commerce
  /domain-lookup:
    get:
      deprecated: false
      description: Retrieve domain name details and detect potentially malicious or dangerous domains
      operationId: DomainLookup
      parameters:
        - description: A domain name, hostname, FQDN, URL, HTML link or email address to lookup
          in: query
          name: host
          required: true
          schema:
            type: string
        - 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"
          in: query
          name: live
          required: false
          schema:
            default: true
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DomainLookupResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Domain Lookup
      tags:
        - Security and Networking
  /email-validate:
    get:
      deprecated: false
      description: Parse, validate and clean an email address
      operationId: EmailValidate
      parameters:
        - description: An email address
          in: query
          name: email
          required: true
          schema:
            type: string
        - description: Automatically attempt to fix typos in the address
          in: query
          name: fix-typos
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmailValidateResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Email Validate
      tags:
        - Data Tools
  /email-verify:
    get:
      deprecated: false
      description: SMTP based email address verification
      operationId: EmailVerify
      parameters:
        - description: An email address
          in: query
          name: email
          required: true
          schema:
            type: string
        - description: Automatically attempt to fix typos in the address
          in: query
          name: fix-typos
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmailVerifyResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Email Verify
      tags:
        - Security and Networking
  /geocode-address:
    get:
      deprecated: false
      description: Geocode an address, partial address or just the name of a place
      operationId: GeocodeAddress
      parameters:
        - description: The full address, partial address or name of a place to try and locate. Comma separated address components are preferred.
          in: query
          name: address
          required: false
          schema:
            type: string
        - description: The house/building number to locate
          in: query
          name: house-number
          required: false
          schema:
            type: string
        - description: The street/road name to locate
          in: query
          name: street
          required: false
          schema:
            type: string
        - description: The city/town name to locate
          in: query
          name: city
          required: false
          schema:
            type: string
        - description: The county/region name to locate
          in: query
          name: county
          required: false
          schema:
            type: string
        - description: The state name to locate
          in: query
          name: state
          required: false
          schema:
            type: string
        - description: The postal code to locate
          in: query
          name: postal-code
          required: false
          schema:
            type: string
        - description: Limit result to this country (the default is no country bias)
          in: query
          name: country-code
          required: false
          schema:
            type: string
        - description: "The language to display results in, available languages are: <ul> <li>de, en, es, fr, it, pt, ru, zh</li> </ul>"
          in: query
          name: language-code
          required: false
          schema:
            default: en
            type: string
        - 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
          in: query
          name: fuzzy-search
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GeocodeAddressResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Geocode Address
      tags:
        - Geolocation
  /geocode-reverse:
    get:
      deprecated: false
      description: Convert a geographic coordinate (latitude and longitude) into a real world address
      operationId: GeocodeReverse
      parameters:
        - description: The location latitude in decimal degrees format
          in: query
          name: latitude
          required: true
          schema:
            type: string
        - description: The location longitude in decimal degrees format
          in: query
          name: longitude
          required: true
          schema:
            type: string
        - description: "The language to display results in, available languages are: <ul> <li>de, en, es, fr, it, pt, ru</li> </ul>"
          in: query
          name: language-code
          required: false
          schema:
            default: en
            type: string
        - 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>"
          in: query
          name: zoom
          required: false
          schema:
            default: address
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GeocodeReverseResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Geocode Reverse
      tags:
        - Geolocation
  /hlr-lookup:
    get:
      deprecated: false
      description: Connect to the global mobile cellular network and retrieve the status of a mobile device
      operationId: HLRLookup
      parameters:
        - description: A phone number
          in: query
          name: number
          required: true
          schema:
            type: string
        - 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)
          in: query
          name: country-code
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HLRLookupResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: HLR Lookup
      tags:
        - Telephony
  /host-reputation:
    get:
      deprecated: false
      description: Check the reputation of an IP address, domain name or URL against a comprehensive list of blacklists and blocklists
      operationId: HostReputation
      parameters:
        - 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
          in: query
          name: host
          required: true
          schema:
            type: string
        - description: Only check lists with this rating or better
          in: query
          name: list-rating
          required: false
          schema:
            default: 3
            format: int32
            type: integer
        - description: Only check these DNSBL zones/hosts. Multiple zones can be supplied as comma-separated values
          in: query
          name: zones
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HostReputationResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Host Reputation
      tags:
        - Security and Networking
  /html-clean:
    post:
      deprecated: false
      description: Clean and sanitize untrusted HTML
      operationId: HTMLClean
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                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:
                  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
              required:
                - content
                - output-type
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                default: ""
                format: binary
                type: string
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: HTML Clean
      tags:
        - WWW
  /html-render:
    post:
      deprecated: false
      description: Render HTML content to PDF, JPG or PNG
      operationId: HTMLRender
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                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
                css:
                  description: "Inject custom CSS into the HTML. e.g. 'body { background-color: red;}'"
                  type: string
                delay:
                  default: 0
                  description: Number of seconds to wait before rendering the page (can be useful for pages with animations etc)
                  format: int32
                  type: integer
                footer:
                  description: "The footer HTML to insert into each page. The following dynamic tags are supported: {date}, {title}, {url}, {pageNumber}, {totalPages}"
                  type: string
                format:
                  default: PDF
                  description: "Which format to output, available options are: PDF, PNG, JPG"
                  type: string
                grayscale:
                  default: false
                  description: Render the final document in grayscale
                  type: boolean
                header:
                  description: "The header HTML to insert into each page. The following dynamic tags are supported: {date}, {title}, {url}, {pageNumber}, {totalPages}"
                  type: string
                ignore-certificate-errors:
                  default: false
                  description: Ignore any TLS/SSL certificate errors
                  type: boolean
                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
                  format: int32
                  type: integer
                image-width:
                  default: 1024
                  description: If rendering to an image format (PNG or JPG) use this image width (in pixels)
                  format: int32
                  type: integer
                landscape:
                  default: false
                  description: Set the document to landscape orientation
                  type: boolean
                margin:
                  default: 0
                  description: The document margin (in mm)
                  format: double
                  type: number
                margin-bottom:
                  default: 0
                  description: The document bottom margin (in mm)
                  format: double
                  type: number
                margin-left:
                  default: 0
                  description: The document left margin (in mm)
                  format: double
                  type: number
                margin-right:
                  default: 0
                  description: The document right margin (in mm)
                  format: double
                  type: number
                margin-top:
                  default: 0
                  description: The document top margin (in mm)
                  format: double
                  type: number
                page-height:
                  description: Set the PDF page height explicitly (in mm)
                  format: double
                  type: number
                page-size:
                  default: A4
                  description: "Set the document page size, can be one of: A0 - A9, B0 - B10, Comm10E, DLE or Letter"
                  type: string
                page-width:
                  description: Set the PDF page width explicitly (in mm)
                  format: double
                  type: number
                timeout:
                  default: 300
                  description: Timeout in seconds. Give up if still trying to load the HTML content after this number of seconds
                  format: int32
                  type: integer
                title:
                  description: The document title
                  type: string
                zoom:
                  default: 1
                  description: Set the zoom factor when rendering the page (2.0 for double size, 0.5 for half size)
                  format: double
                  type: number
              required:
                - content
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                default: ""
                format: binary
                type: string
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: HTML Render
      tags:
        - Imaging
  /image-resize:
    post:
      deprecated: false
      description: Resize an image and output as either JPEG or PNG
      operationId: ImageResize
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                bg-color:
                  default: transparent
                  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
                format:
                  default: png
                  description: The output image format, can be either png or jpg
                  type: string
                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
                  format: int32
                  type: integer
                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
                resize-mode:
                  default: scale
                  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
                width:
                  description: The width to resize to (in px)
                  format: int32
                  type: integer
              required:
                - image-url
                - width
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                default: ""
                format: binary
                type: string
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Image Resize
      tags:
        - Imaging
  /image-watermark:
    post:
      deprecated: false
      description: Watermark one image with another image
      operationId: ImageWatermark
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                bg-color:
                  default: transparent
                  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
                format:
                  default: png
                  description: The output image format, can be either png or jpg
                  type: string
                height:
                  description: If set resize the resulting image to this height (in px)
                  format: int32
                  type: integer
                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
                opacity:
                  default: 50
                  description: The opacity of the watermark (0 to 100)
                  format: int32
                  type: integer
                position:
                  default: center
                  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
                resize-mode:
                  default: scale
                  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
                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
                width:
                  description: If set resize the resulting image to this width (in px)
                  format: int32
                  type: integer
              required:
                - image-url
                - watermark-url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                default: ""
                format: binary
                type: string
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Image Watermark
      tags:
        - Imaging
  /ip-blocklist:
    get:
      deprecated: false
      description: The IP Blocklist API will detect potentially malicious or dangerous IP addresses
      operationId: IPBlocklist
      parameters:
        - 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
          in: query
          name: ip
          required: true
          schema:
            type: string
        - 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>'
          in: query
          name: vpn-lookup
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPBlocklistResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: IP Blocklist
      tags:
        - Security and Networking
  /ip-blocklist-download:
    get:
      deprecated: false
      description: This API is a direct feed to our IP blocklist data
      operationId: IPBlocklistDownload
      parameters:
        - description: The data format. Can be either CSV or TXT
          in: query
          name: format
          required: false
          schema:
            default: csv
            type: string
        - description: "Include public VPN provider addresses, this option is only available for Tier 3 or higher accounts. Adds any IPs which are solely listed as VPN providers, IPs that are listed on multiple sensors will still be included without enabling this option. <br><b>WARNING</b>: This adds at least an additional 8 million IP addresses to the download if not using CIDR notation"
          in: query
          name: include-vpn
          required: false
          schema:
            default: false
            type: boolean
        - description: Output IPs using CIDR notation. This option should be preferred but is off by default for backwards compatibility
          in: query
          name: cidr
          required: false
          schema:
            default: false
            type: boolean
        - 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
          in: query
          name: ip6
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                default: ""
                format: binary
                type: string
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: IP Blocklist Download
      tags:
        - Security and Networking
  /ip-info:
    get:
      deprecated: false
      description: Get location information about an IP address and do reverse DNS (PTR) lookups
      operationId: IPInfo
      parameters:
        - description: IPv4 or IPv6 address
          in: query
          name: ip
          required: true
          schema:
            type: string
        - description: Do a reverse DNS (PTR) lookup. This option can add extra delay to the request so only use it if you need it
          in: query
          name: reverse-lookup
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPInfoResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: IP Info
      tags:
        - Geolocation
  /ip-probe:
    get:
      deprecated: false
      description: Execute a realtime network probe against an IPv4 or IPv6 address
      operationId: IPProbe
      parameters:
        - description: IPv4 or IPv6 address
          in: query
          name: ip
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPProbeResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: IP Probe
      tags:
        - Security and Networking
  /phone-playback:
    post:
      deprecated: false
      description: Make an automated call to any valid phone number and playback an audio message
      operationId: PhonePlayback
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                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:
                  default: 3
                  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
                  format: int32
                  type: integer
                limit-ttl:
                  default: 1
                  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)
                  format: int32
                  type: integer
                number:
                  description: The phone number to call. Must be in valid international format
                  type: string
              required:
                - number
                - audio-url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PhonePlaybackResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Phone Playback
      tags:
        - Telephony
  /phone-validate:
    get:
      deprecated: false
      description: Parse, validate and get location information about a phone number
      operationId: PhoneValidate
      parameters:
        - 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
          in: query
          name: number
          required: true
          schema:
            type: string
        - 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)
          in: query
          name: country-code
          required: false
          schema:
            type: string
        - description: Pass in a users IP address and we will assume numbers are based in the country of the IP address
          in: query
          name: ip
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PhoneValidateResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Phone Validate
      tags:
        - Data Tools
  /phone-verify:
    post:
      deprecated: false
      description: Make an automated call to any valid phone number and playback a unique security code
      operationId: PhoneVerify
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                code-length:
                  default: 6
                  description: The number of digits to use in the security code (between 4 and 12)
                  format: int32
                  type: integer
                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:
                  default: en
                  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:
                  default: 3
                  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
                  format: int32
                  type: integer
                limit-ttl:
                  default: 1
                  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)
                  format: int32
                  type: integer
                number:
                  description: The phone number to send the verification code to
                  type: string
                playback-delay:
                  default: 800
                  description: The delay in milliseconds between the playback of each security code
                  format: int32
                  type: integer
                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
                  format: int32
                  type: integer
              required:
                - number
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PhoneVerifyResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Phone Verify
      tags:
        - Telephony
  /qr-code:
    post:
      deprecated: false
      description: Generate a QR code as a PNG image
      operationId: QRCode
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                bg-color:
                  default: "#ffffff"
                  description: The QR code background color
                  type: string
                content:
                  description: The content to encode into the QR code (e.g. a URL or a phone number)
                  type: string
                fg-color:
                  default: "#000000"
                  description: The QR code foreground color
                  type: string
                height:
                  default: 256
                  description: The height of the QR code (in px)
                  format: int32
                  type: integer
                width:
                  default: 256
                  description: The width of the QR code (in px)
                  format: int32
                  type: integer
              required:
                - content
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                default: ""
                format: binary
                type: string
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: QR Code
      tags:
        - Imaging
  /sms-verify:
    post:
      deprecated: false
      description: Send a unique security code to any mobile device via SMS
      operationId: SMSVerify
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                code-length:
                  default: 5
                  description: The number of digits to use in the security code (must be between 4 and 12)
                  format: int32
                  type: integer
                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:
                  default: en
                  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:
                  default: 10
                  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
                  format: int32
                  type: integer
                limit-ttl:
                  default: 1
                  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)
                  format: int32
                  type: integer
                number:
                  description: The phone number to send a verification code to
                  type: string
                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
                  format: int32
                  type: integer
              required:
                - number
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SMSVerifyResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: SMS Verify
      tags:
        - Telephony
  /ua-lookup:
    get:
      deprecated: false
      description: Parse, validate and get detailed user-agent information from a user agent string or from client hints
      operationId: UALookup
      parameters:
        - 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()'
          in: query
          name: ua
          required: true
          schema:
            type: string
        - description: For client hints this corresponds to the 'UA-Full-Version' header or 'uaFullVersion' from NavigatorUAData
          in: query
          name: ua-version
          required: false
          schema:
            type: string
        - description: For client hints this corresponds to the 'UA-Platform' header or 'platform' from NavigatorUAData
          in: query
          name: ua-platform
          required: false
          schema:
            type: string
        - description: For client hints this corresponds to the 'UA-Platform-Version' header or 'platformVersion' from NavigatorUAData
          in: query
          name: ua-platform-version
          required: false
          schema:
            type: string
        - description: For client hints this corresponds to the 'UA-Mobile' header or 'mobile' from NavigatorUAData
          in: query
          name: ua-mobile
          required: false
          schema:
            type: string
        - 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"
          in: query
          name: device-model
          required: false
          schema:
            type: string
        - 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"
          in: query
          name: device-brand
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UALookupResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: UA Lookup
      tags:
        - Data Tools
  /url-info:
    get:
      deprecated: false
      description: Parse, analyze and retrieve content from the supplied URL
      operationId: URLInfo
      parameters:
        - description: The URL to probe
          in: query
          name: url
          required: true
          schema:
            type: string
        - 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)
          in: query
          name: fetch-content
          required: false
          schema:
            default: false
            type: boolean
        - description: Ignore any TLS/SSL certificate errors and load the URL anyway
          in: query
          name: ignore-certificate-errors
          required: false
          schema:
            default: false
            type: boolean
        - description: Timeout in seconds. Give up if still trying to load the URL after this number of seconds
          in: query
          name: timeout
          required: false
          schema:
            default: 60
            format: int32
            type: integer
        - description: If the request fails for any reason try again this many times
          in: query
          name: retry
          required: false
          schema:
            default: 0
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/URLInfoResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: URL Info
      tags:
        - WWW
  /verify-security-code:
    get:
      deprecated: false
      description: Check if a security code sent via SMS Verify or Phone Verify is valid
      operationId: VerifySecurityCode
      parameters:
        - description: The security code to verify
          in: query
          name: security-code
          required: true
          schema:
            type: string
        - 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
          in: query
          name: limit-by
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VerifySecurityCodeResponse"
          description: ""
          headers: {}
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: Your API request has been rejected. Check error code for details
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: You have failed to authenticate
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused a fatal exception
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIError"
          description: We messed up, sorry! Your request has caused an error
      summary: Verify Security Code
      tags:
        - Telephony
components:
  schemas:
    APIError:
      properties:
        api-error:
          description: API error code. If set and > 0 then an API error has occurred your request could not be completed
          format: int32
          type: integer
        api-error-msg:
          description: API error message
          type: string
      required:
        - api-error
        - api-error-msg
      title: APIError
      type: object
    BINLookupResponse:
      properties:
        bin-number:
          description: The BIN or IIN number
          type: string
        card-brand:
          description: The card brand (e.g. Visa or Mastercard)
          type: string
        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
        card-type:
          description: "The card type, will always be one of: DEBIT, CREDIT, CHARGE CARD"
          type: string
        country:
          description: The full country name of the issuer
          type: string
        country-code:
          description: The ISO 2-letter country code of the issuer
          type: string
        country-code3:
          description: The ISO 3-letter country code of the issuer
          type: string
        currency-code:
          description: ISO 4217 currency code associated with the country of the issuer
          type: string
        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
        ip-blocklists:
          description: An array of strings indicating which blocklists this IP is listed on
          items:
            type: string
          type: array
        ip-city:
          description: The city of the customers IP (if detectable)
          type: string
        ip-country:
          description: The country of the customers IP
          type: string
        ip-country-code:
          description: The ISO 2-letter country code of the customers IP
          type: string
        ip-country-code3:
          description: The ISO 3-letter country code of the customers IP
          type: string
        ip-matches-bin:
          description: True if the customers IP country matches the BIN country
          type: boolean
        ip-region:
          description: The region of the customers IP (if detectable)
          type: string
        is-commercial:
          description: Is this a commercial/business use card
          type: boolean
        is-prepaid:
          description: Is this a prepaid or prepaid reloadable card
          type: boolean
        issuer:
          description: The card issuer
          type: string
        issuer-phone:
          description: The card issuers phone number
          type: string
        issuer-website:
          description: The card issuers website
          type: string
        valid:
          description: Is this a valid BIN or IIN number
          type: boolean
      required:
        - country
        - ip-city
        - ip-matches-bin
        - card-type
        - card-category
        - ip-country-code
        - ip-country
        - issuer
        - ip-blocklisted
        - valid
        - ip-blocklists
        - issuer-website
        - country-code
        - ip-region
        - card-brand
        - issuer-phone
        - country-code3
        - currency-code
        - ip-country-code3
        - is-commercial
        - is-prepaid
        - bin-number
      title: BINLookupResponse
      type: object
    BadWordFilterResponse:
      properties:
        bad-words-list:
          description: An array of the bad words found
          items:
            type: string
          type: array
        bad-words-total:
          description: Total number of bad words detected
          format: int32
          type: integer
        censored-content:
          description: The censored content (only set if censor-character has been set)
          type: string
        is-bad:
          description: Does the text contain bad words
          type: boolean
      required:
        - bad-words-list
        - bad-words-total
        - censored-content
        - is-bad
      title: BadWordFilterResponse
      type: object
    Blacklist:
      properties:
        is-listed:
          description: True if the host is currently black-listed
          type: boolean
        list-host:
          description: The hostname of the DNSBL
          type: string
        list-name:
          description: The name of the DNSBL
          type: string
        list-rating:
          description: The list rating [1-3] with 1 being the best rating and 3 the lowest rating
          format: int32
          type: integer
        response-time:
          description: The DNSBL server response time in milliseconds
          format: int32
          type: integer
        return-code:
          description: The specific return code for this listing (only set if listed)
          type: string
        txt-record:
          description: The TXT record returned for this listing (only set if listed)
          type: string
      required:
        - is-listed
        - list-host
        - list-rating
        - list-name
        - txt-record
        - return-code
        - response-time
      title: Blacklist
      type: object
    BlocklistSensor:
      description: ""
      properties:
        blocklist:
          description: The primary blocklist category this sensor belongs to
          type: string
        description:
          description: Contains details about the sensor source and what type of malicious activity was detected
          type: string
        id:
          description: The sensor ID. This is a permanent and unique ID for each sensor
          format: int32
          type: integer
      required:
        - id
        - blocklist
        - description
      title: BlocklistSensor
      type: object
    BrowserBotResponse:
      properties:
        content:
          description: The complete raw, decompressed and decoded page content. Usually will be either HTML, JSON or XML
          type: string
        elements:
          description: Array containing all the elements matching the supplied selector. <br>Each element object will contain the text content, HTML content and all current element attributes
          items:
            type: string
          type: array
        error-message:
          description: Contains the error message if an error has occurred ('is-error' will be true)
          type: string
        exec-results:
          description: If you executed any JavaScript this array holds the results as objects
          items:
            type: string
          type: array
        http-redirect-url:
          description: The redirected URL if the URL responded with an HTTP redirect
          type: string
        http-status-code:
          description: The HTTP status code the URL returned
          format: int32
          type: integer
        http-status-message:
          description: The HTTP status message the URL returned
          type: string
        is-error:
          description: True if an error has occurred loading the page. Check the 'error-message' field for details
          type: boolean
        is-http-ok:
          description: True if the HTTP status is OK (200)
          type: boolean
        is-http-redirect:
          description: True if the URL responded with an HTTP redirect
          type: boolean
        is-secure:
          description: True if the page is secured using TLS/SSL
          type: boolean
        is-timeout:
          description: True if a timeout occurred while loading the page. You can set the timeout with the request parameter 'timeout'
          type: boolean
        language-code:
          description: The ISO 2-letter language code of the page. Extracted from either the HTML document or via HTTP headers
          type: string
        load-time:
          description: The number of seconds taken to load the page (from initial request until DOM ready)
          format: double
          type: number
        mime-type:
          description: The document MIME type
          type: string
        response-headers:
          additionalProperties:
            type: string
          description: Map containing all the HTTP response headers the URL responded with
          type: object
        security-details:
          additionalProperties:
            type: string
          description: Map containing details of the TLS/SSL setup
          type: object
        server-ip:
          description: The HTTP servers IP address
          type: string
        title:
          description: The document title
          type: string
        url:
          description: The page URL
          type: string
      required:
        - url
        - content
        - mime-type
        - title
        - is-error
        - is-timeout
        - error-message
        - http-status-code
        - http-status-message
        - is-http-ok
        - is-http-redirect
        - http-redirect-url
        - server-ip
        - load-time
        - response-headers
        - is-secure
        - security-details
        - elements
        - exec-results
        - language-code
      title: BrowserBotResponse
      type: object
    ConvertResponse:
      properties:
        from-type:
          description: The type of the value being converted from
          type: string
        from-value:
          description: The value being converted from
          type: string
        result:
          description: The result of the conversion in string format
          type: string
        result-float:
          description: The result of the conversion as a floating-point number
          format: double
          type: number
        to-type:
          description: The type being converted to
          type: string
        valid:
          description: True if the conversion was successful and produced a valid result
          type: boolean
      required:
        - valid
        - result
        - from-value
        - to-type
        - from-type
        - result-float
      title: ConvertResponse
      type: object
    DomainLookupResponse:
      properties:
        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
          format: int32
          type: integer
        blocklists:
          description: "An array of strings indicating which blocklist categories this domain is listed on. Current categories are: phishing, malware, spam, anonymizer, nefarious"
          items:
            type: string
          type: array
        dns-provider:
          description: The primary domain of the DNS provider for this domain
          type: string
        domain:
          description: The primary domain name excluding any subdomains. This is also referred to as the second-level domain (SLD)
          type: string
        fqdn:
          description: The fully qualified domain name (FQDN)
          type: string
        is-adult:
          description: This domain is hosting adult content such as porn, webcams, escorts, etc
          type: boolean
        is-gov:
          description: Is this domain under a government or military TLD
          type: boolean
        is-malicious:
          description: Consider this domain malicious as it is currently listed on at least 1 blocklist
          type: boolean
        is-opennic:
          description: Is this domain under an OpenNIC TLD
          type: boolean
        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-subdomain:
          description: Is the FQDN a subdomain of the primary domain
          type: boolean
        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
        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
          format: int32
          type: integer
        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
        registrar-id:
          description: The IANA registrar ID (0 if no registrar ID was found)
          format: int32
          type: integer
        registrar-name:
          description: The name of the domain registrar owning this domain
          type: string
        sensors:
          description: An array of objects containing details on which specific blocklist sensors have detected this domain
          items:
            $ref: "#/components/schemas/BlocklistSensor"
          type: array
        tld:
          description: The top-level domain (TLD)
          type: string
        tld-cc:
          description: For a country code top-level domain (ccTLD) this will contain the associated ISO 2-letter country code
          type: string
        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
      required:
        - domain
        - is-malicious
        - blocklists
        - sensors
        - valid
        - fqdn
        - is-subdomain
        - tld
        - tld-cc
        - rank
        - is-gov
        - is-opennic
        - is-pending
        - is-adult
        - registered-date
        - age
        - registrar-name
        - registrar-id
        - dns-provider
        - mail-provider
      title: DomainLookupResponse
      type: object
    EmailValidateResponse:
      properties:
        domain:
          description: The email domain
          type: string
        domain-error:
          description: True if this address has a domain error (e.g. no valid mail server records)
          type: boolean
        email:
          description: The email address. If you have used the fix-typos option then this will be the fixed address
          type: string
        is-disposable:
          description: True if this address is a disposable, temporary or darknet related email address
          type: boolean
        is-freemail:
          description: True if this address is a free-mail address
          type: boolean
        is-personal:
          description: True if this address belongs to a person. False if this is a role based address, e.g. admin@, help@, office@, etc.
          type: boolean
        provider:
          description: The email service provider domain
          type: string
        syntax-error:
          description: True if this address has a syntax error
          type: boolean
        typos-fixed:
          description: True if typos have been fixed
          type: boolean
        valid:
          description: Is this a valid email
          type: boolean
      required:
        - valid
        - syntax-error
        - domain
        - domain-error
        - is-freemail
        - email
        - is-disposable
        - typos-fixed
        - is-personal
        - provider
      title: EmailValidateResponse
      type: object
    EmailVerifyResponse:
      properties:
        domain:
          description: The email domain
          type: string
        domain-error:
          description: True if this address has a domain error (e.g. no valid mail server records)
          type: boolean
        email:
          description: The email address. If you have used the fix-typos option then this will be the fixed address
          type: string
        is-catch-all:
          description: True if this email domain has a catch-all policy (it will accept mail for any username)
          type: boolean
        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
        is-disposable:
          description: True if this address is a disposable, temporary or darknet related email address
          type: boolean
        is-freemail:
          description: True if this address is a free-mail address
          type: boolean
        is-personal:
          description: True if this address is for a person. False if this is a role based address, e.g. admin@, help@, office@, etc.
          type: boolean
        provider:
          description: The email service provider domain
          type: string
        smtp-response:
          description: The raw SMTP response message received during verification
          type: string
        smtp-status:
          description: "The SMTP verification status for the address: <br> <ul> <li>ok - SMTP verification was successful, this is a real address that can receive mail</li> <li>invalid - this is not a valid email address (has either a domain or syntax error)</li> <li>absent - this address is not registered with the email service provider</li> <li>unresponsive - the mail server(s) for this address timed-out or refused to open an SMTP connection</li> <li>unknown - sorry, we could not reliably determine the real status of this address (this address may or may not exist)</li> </ul>"
          type: string
        syntax-error:
          description: True if this address has a syntax error
          type: boolean
        typos-fixed:
          description: True if typos have been fixed
          type: boolean
        valid:
          description: Is this a valid email address (syntax and domain is valid)
          type: boolean
        verified:
          description: True if this address has passed SMTP verification. Check the smtp-status and smtp-response fields for specific verification details
          type: boolean
      required:
        - valid
        - verified
        - email
        - typos-fixed
        - syntax-error
        - domain-error
        - domain
        - provider
        - is-freemail
        - is-disposable
        - is-personal
        - smtp-status
        - smtp-response
        - is-catch-all
        - is-deferred
      title: EmailVerifyResponse
      type: object
    GeocodeAddressResponse:
      properties:
        found:
          description: The number of possible matching locations found
          format: int32
          type: integer
        locations:
          description: Array of matching location objects
          items:
            $ref: "#/components/schemas/Location"
          type: array
      required:
        - found
        - locations
      title: GeocodeAddressResponse
      type: object
    GeocodeReverseResponse:
      properties:
        address:
          description: The complete address using comma-separated values
          type: string
        address-components:
          additionalProperties:
            type: string
          description: The components which make up the address such as road, city, state, etc
          type: object
        city:
          description: The city of the location
          type: string
        country:
          description: The country of the location
          type: string
        country-code:
          description: The ISO 2-letter country code of the location
          type: string
        country-code3:
          description: The ISO 3-letter country code of the location
          type: string
        currency-code:
          description: ISO 4217 currency code associated with the country
          type: string
        found:
          description: True if these coordinates map to a real location
          type: boolean
        latitude:
          description: The location latitude
          format: double
          type: number
        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"
          items:
            type: string
          type: array
        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
        longitude:
          description: The location longitude
          format: double
          type: number
        postal-address:
          description: The formatted address using local standards suitable for printing on an envelope
          type: string
        postal-code:
          description: The postal code for the location
          type: string
        region-code:
          description: The ISO 3166-2 region code for the location
          type: string
        state:
          description: The state of the location
          type: string
        timezone:
          additionalProperties:
            $ref: "#/components/schemas/Timezone"
          description: Map containing timezone details for the location
          type: object
      required:
        - country
        - found
        - address
        - city
        - country-code
        - postal-code
        - state
        - address-components
        - country-code3
        - currency-code
        - location-type
        - location-tags
        - latitude
        - longitude
        - timezone
        - region-code
        - postal-address
      title: GeocodeReverseResponse
      type: object
    HLRLookupResponse:
      properties:
        country:
          description: The phone number country
          type: string
        country-code:
          description: The number location as an ISO 2-letter country code
          type: string
        country-code3:
          description: The number location as an ISO 3-letter country code
          type: string
        currency-code:
          description: ISO 4217 currency code associated with the country
          type: string
        current-network:
          description: The currently used network/carrier name
          type: string
        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
        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
        imsi:
          description: The mobile IMSI number (International Mobile Subscriber Identity)
          type: string
        international-calling-code:
          description: The international calling code
          type: string
        international-number:
          description: The number represented in full international format
          type: string
        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-ported:
          description: Has this number been ported to another network
          type: boolean
        is-roaming:
          description: Is this number currently roaming from its origin country
          type: boolean
        local-number:
          description: The number represented in local dialing format
          type: string
        location:
          description: The number location. Could be a city, region or country depending on the type of number
          type: string
        mcc:
          description: The mobile MCC number (Mobile Country Code)
          type: string
        mnc:
          description: The mobile MNC number (Mobile Network Code)
          type: string
        msc:
          description: The mobile MSC number (Mobile Switching Center)
          type: string
        msin:
          description: The mobile MSIN number (Mobile Subscription Identification Number)
          type: string
        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
        number-valid:
          description: True if this a valid phone number
          type: boolean
        origin-network:
          description: The origin network/carrier name
          type: string
        ported-network:
          description: The ported to network/carrier name (only set if the number has been ported)
          type: string
        roaming-country-code:
          description: If the number is currently roaming, the ISO 2-letter country code of the roaming in country
          type: string
      required:
        - number-valid
        - international-calling-code
        - mnc
        - number-type
        - hlr-valid
        - hlr-status
        - ported-network
        - imsi
        - mcc
        - international-number
        - local-number
        - country-code
        - is-ported
        - msin
        - location
        - origin-network
        - is-mobile
        - is-roaming
        - country
        - country-code3
        - currency-code
        - roaming-country-code
        - msc
        - current-network
      title: HLRLookupResponse
      type: object
    HostReputationResponse:
      properties:
        host:
          description: The IP address or host name
          type: string
        is-listed:
          description: Is this host blacklisted
          type: boolean
        list-count:
          description: The number of DNSBLs the host is listed on
          format: int32
          type: integer
        lists:
          description: Array of objects for each DNSBL checked
          items:
            $ref: "#/components/schemas/Blacklist"
          type: array
      required:
        - is-listed
        - lists
        - list-count
        - host
      title: HostReputationResponse
      type: object
    IPBlocklistResponse:
      properties:
        blocklists:
          description: An array of strings indicating which blocklist categories this IP is listed on
          items:
            type: string
          type: array
        cidr:
          description: The CIDR address for this listing (only set if the IP is listed)
          type: string
        ip:
          description: The IP address
          type: string
        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-dshield:
          description: IP has been flagged as a significant attack source by DShield (dshield.org)
          type: boolean
        is-exploit-bot:
          description: IP is hosting an exploit finding bot or is running exploit scanning software
          type: boolean
        is-hijacked:
          description: IP is part of a hijacked netblock or a netblock controlled by a criminal organization
          type: boolean
        is-listed:
          description: Is this IP on a blocklist
          type: boolean
        is-malware:
          description: IP is involved in distributing or is running malware
          type: boolean
        is-proxy:
          description: IP has been detected as an anonymous web proxy or anonymous HTTP proxy
          type: boolean
        is-spam-bot:
          description: IP address is hosting a spam bot, comment spamming or any other spamming type software
          type: boolean
        is-spider:
          description: IP is running a hostile web spider / web crawler
          type: boolean
        is-spyware:
          description: IP is involved in distributing or is running spyware
          type: boolean
        is-tor:
          description: IP is a Tor node or running a Tor related service
          type: boolean
        is-vpn:
          description: IP belongs to a public VPN provider (only set if the 'vpn-lookup' option is enabled)
          type: boolean
        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
          format: int32
          type: integer
        list-count:
          description: The number of blocklists the IP is listed on
          format: int32
          type: integer
        sensors:
          description: An array of objects containing details on which specific sensors detected the IP
          items:
            $ref: "#/components/schemas/BlocklistSensor"
          type: array
      required:
        - ip
        - is-bot
        - is-exploit-bot
        - is-malware
        - is-spider
        - is-dshield
        - list-count
        - is-proxy
        - is-hijacked
        - is-tor
        - is-spyware
        - is-spam-bot
        - is-listed
        - is-vpn
        - last-seen
        - blocklists
        - sensors
        - cidr
      title: IPBlocklistResponse
      type: object
    IPInfoResponse:
      properties:
        city:
          description: Name of the city (if detectable)
          type: string
        continent-code:
          description: ISO 2-letter continent code
          type: string
        country:
          description: Full country name
          type: string
        country-code:
          description: ISO 2-letter country code
          type: string
        country-code3:
          description: ISO 3-letter country code
          type: string
        currency-code:
          description: ISO 4217 currency code associated with the country
          type: string
        host-domain:
          description: The IPs host domain (only set if reverse-lookup has been used)
          type: string
        hostname:
          description: The IPs full hostname (only set if reverse-lookup has been used)
          type: string
        ip:
          description: The IP address
          type: string
        is-bogon:
          description: True if this is a bogon IP address such as a private network, local network or reserved address
          type: boolean
        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-v6:
          description: True if this is a IPv6 address. False if IPv4
          type: boolean
        latitude:
          description: Location latitude
          format: double
          type: number
        longitude:
          description: Location longitude
          format: double
          type: number
        region:
          description: Name of the region (if detectable)
          type: string
        region-code:
          description: ISO 3166-2 region code (if detectable)
          type: string
        timezone:
          $ref: "#/components/schemas/Timezone"
        valid:
          description: True if this is a valid IPv4 or IPv6 address
          type: boolean
      required:
        - valid
        - country
        - hostname
        - city
        - country-code
        - latitude
        - region
        - longitude
        - continent-code
        - ip
        - country-code3
        - currency-code
        - host-domain
        - timezone
        - is-v6
        - is-v4-mapped
        - is-bogon
        - region-code
      title: IPInfoResponse
      type: object
    IPProbeResponse:
      properties:
        as-age:
          description: The age of the autonomous system (AS) in number of years since registration
          format: int32
          type: integer
        as-cidr:
          description: The autonomous system (AS) CIDR range
          type: string
        as-country-code:
          description: The autonomous system (AS) ISO 2-letter country code
          type: string
        as-country-code3:
          description: The autonomous system (AS) ISO 3-letter country code
          type: string
        as-description:
          description: The autonomous system (AS) description / company name
          type: string
        as-domains:
          description: Array of all the domains associated with the autonomous system (AS)
          items:
            type: string
          type: array
        asn:
          description: The autonomous system (AS) number
          type: string
        city:
          description: Full city name (if detectable)
          type: string
        continent-code:
          description: ISO 2-letter continent code
          type: string
        country:
          description: Full country name
          type: string
        country-code:
          description: ISO 2-letter country code
          type: string
        country-code3:
          description: ISO 3-letter country code
          type: string
        currency-code:
          description: ISO 4217 currency code associated with the country
          type: string
        host-domain:
          description: The IPs host domain
          type: string
        hostname:
          description: The IPs full hostname (PTR)
          type: string
        ip:
          description: The IP address
          type: string
        is-bogon:
          description: True if this is a bogon IP address such as a private network, local network or reserved address
          type: boolean
        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:
          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
        is-proxy:
          description: True if this IP ia a proxy
          type: boolean
        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-v6:
          description: True if this is a IPv6 address. False if IPv4
          type: boolean
        is-vpn:
          description: True if this IP ia a VPN
          type: boolean
        provider-description:
          description: A description of the provider (usually extracted from the providers website)
          type: string
        provider-domain:
          description: The domain name of the provider
          type: string
        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
        provider-website:
          description: The website URL for the provider
          type: string
        region:
          description: Full region name (if detectable)
          type: string
        region-code:
          description: ISO 3166-2 region code (if detectable)
          type: string
        valid:
          description: True if this is a valid IPv4 or IPv6 address
          type: boolean
        vpn-domain:
          description: The domain of the VPN provider (may be empty if the VPN domain is not detectable)
          type: string
      required:
        - valid
        - country
        - provider-type
        - country-code
        - hostname
        - provider-domain
        - city
        - provider-website
        - ip
        - region
        - provider-description
        - continent-code
        - is-hosting
        - is-isp
        - country-code3
        - currency-code
        - is-vpn
        - is-proxy
        - asn
        - as-cidr
        - as-country-code
        - as-country-code3
        - as-domains
        - as-description
        - as-age
        - host-domain
        - vpn-domain
        - is-v6
        - is-v4-mapped
        - is-bogon
        - region-code
      title: IPProbeResponse
      type: object
    Location:
      properties:
        address:
          description: The complete address using comma-separated values
          type: string
        address-components:
          additionalProperties:
            type: string
          description: The components which make up the address such as road, city, state, etc
          type: object
        city:
          description: The city of the location
          type: string
        country:
          description: The country of the location
          type: string
        country-code:
          description: The ISO 2-letter country code of the location
          type: string
        country-code3:
          description: The ISO 3-letter country code of the location
          type: string
        currency-code:
          description: ISO 4217 currency code associated with the country
          type: string
        latitude:
          description: The location latitude
          format: double
          type: number
        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"
          items:
            type: string
          type: array
        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
        longitude:
          description: The location longitude
          format: double
          type: number
        postal-address:
          description: The formatted address using local standards suitable for printing on an envelope
          type: string
        postal-code:
          description: The postal code for the location
          type: string
        region-code:
          description: The ISO 3166-2 region code for the location
          type: string
        state:
          description: The state of the location
          type: string
        timezone:
          $ref: "#/components/schemas/Timezone"
      required:
        - country
        - address
        - city
        - country-code
        - country-code3
        - latitude
        - postal-code
        - longitude
        - state
        - address-components
        - currency-code
        - location-type
        - location-tags
        - timezone
        - region-code
        - postal-address
      title: Location
      type: object
    PhonePlaybackResponse:
      properties:
        calling:
          description: True if the call is being made now
          type: boolean
        number-valid:
          description: True if this a valid phone number
          type: boolean
      required:
        - calling
        - number-valid
      title: PhonePlaybackResponse
      type: object
    PhoneValidateResponse:
      properties:
        country:
          description: The phone number country
          type: string
        country-code:
          description: The phone number country as an ISO 2-letter country code
          type: string
        country-code3:
          description: The phone number country as an ISO 3-letter country code
          type: string
        currency-code:
          description: ISO 4217 currency code associated with the country
          type: string
        international-calling-code:
          description: The international calling code
          type: string
        international-number:
          description: The number represented in full international format (E.164)
          type: string
        is-mobile:
          description: True if this is a mobile number. If the number type is unknown this value will be false
          type: boolean
        local-number:
          description: The number represented in local dialing format
          type: string
        location:
          description: The phone number location. Could be the city, region or country depending on the type of number
          type: string
        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
        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
        valid:
          description: Is this a valid phone number
          type: boolean
      required:
        - valid
        - international-calling-code
        - country-code
        - location
        - is-mobile
        - type
        - international-number
        - local-number
        - country
        - country-code3
        - currency-code
        - prefix-network
      title: PhoneValidateResponse
      type: object
    PhoneVerifyResponse:
      properties:
        calling:
          description: True if the call is being made now
          type: boolean
        number-valid:
          description: True if this a valid phone number
          type: boolean
        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
      required:
        - number-valid
        - calling
        - security-code
      title: PhoneVerifyResponse
      type: object
    SMSVerifyResponse:
      properties:
        number-valid:
          description: True if this a valid phone number
          type: boolean
        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:
          description: True if the SMS has been sent
          type: boolean
      required:
        - number-valid
        - security-code
        - sent
      title: SMSVerifyResponse
      type: object
    Timezone:
      description: Map containing timezone details
      properties:
        abbr:
          description: The time zone abbreviation
          example: EDT
          type: string
        date:
          description: The current date at the time zone (ISO 8601 format 'YYYY-MM-DD')
          example: 2021-01-01
          type: string
        id:
          description: The time zone ID as per the IANA time zone database (tzdata)
          example: America/New_York
          type: string
        name:
          description: The full time zone name
          example: Eastern Daylight Time
          type: string
        offset:
          description: The UTC offset for the time zone (ISO 8601 format '±hh:mm')
          type: string
        time:
          description: The current time at the time zone (ISO 8601 format 'hh:mm:ss.sss')
          example: 12:30:00.00
          type: string
      required:
        - id
        - name
        - abbr
        - date
        - time
        - offset
      title: Timezone
      type: object
    UALookupResponse:
      properties:
        browser-engine:
          description: If the client is a web browser which underlying browser engine does it use
          type: string
        browser-release:
          description: If the client is a web browser which year was this browser version released
          type: string
        device-brand:
          description: The device brand / manufacturer
          type: string
        device-height-px:
          description: The device display height in CSS 'px'
          format: double
          type: number
        device-model:
          description: The device model
          type: string
        device-model-code:
          description: The device model code
          type: string
        device-pixel-ratio:
          description: The device display pixel ratio (the ratio of the resolution in physical pixels to the resolution in CSS pixels)
          format: double
          type: number
        device-ppi:
          description: The device display PPI (pixels per inch)
          format: double
          type: number
        device-price:
          description: The average device price on release in USD
          format: double
          type: number
        device-release:
          description: The year when this device model was released
          type: string
        device-resolution:
          description: The device display resolution in physical pixels (e.g. 720x1280)
          type: string
        device-width-px:
          description: The device display width in CSS 'px'
          format: double
          type: number
        is-mobile:
          description: Is this a mobile device (e.g. a phone or tablet)
          type: boolean
        is-webview:
          description: Is this a WebView / embedded software client
          type: boolean
        name:
          description: The client software name
          type: string
        os:
          description: The full operating system name
          type: string
        os-family:
          description: "The operating system family. The major OS families are: Android, Windows, macOS, iOS, Linux"
          type: string
        os-version:
          description: The operating system full version
          type: string
        os-version-major:
          description: The operating system major version
          type: string
        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
        ua:
          description: The user agent string
          type: string
        version:
          description: The client software full version
          type: string
        version-major:
          description: The client software major version
          type: string
      required:
        - ua
        - type
        - name
        - version
        - version-major
        - browser-engine
        - browser-release
        - os
        - os-family
        - os-version
        - os-version-major
        - is-mobile
        - is-webview
        - device-brand
        - device-model
        - device-model-code
        - device-release
        - device-price
        - device-resolution
        - device-ppi
        - device-pixel-ratio
        - device-width-px
        - device-height-px
      title: UALookupResponse
      type: object
    URLInfoResponse:
      properties:
        content:
          description: The actual content this URL responded with. Only set if the 'fetch-content' option was used
          type: string
        content-encoding:
          description: The encoding format the URL uses
          type: string
        content-size:
          description: The size of the URL content in bytes
          format: int32
          type: integer
        content-type:
          description: The content-type this URL serves
          type: string
        http-ok:
          description: True if this URL responded with an HTTP OK (200) status
          type: boolean
        http-redirect:
          description: True if this URL responded with an HTTP redirect
          type: boolean
        http-status:
          description: The HTTP status code this URL responded with. An HTTP status of 0 indicates a network level issue
          format: int32
          type: integer
        http-status-message:
          description: The HTTP status message assoicated with the status code
          format: int32
          type: integer
        is-error:
          description: True if an error occurred while loading the URL. This includes network errors, TLS errors and timeouts
          type: boolean
        is-timeout:
          description: True if a timeout occurred while loading the URL. You can set the timeout with the request parameter 'timeout'
          type: boolean
        language-code:
          description: The ISO 2-letter language code of the page. Extracted from either the HTML document or via HTTP headers
          type: string
        load-time:
          description: The time taken to load the URL content in seconds
          format: double
          type: number
        query:
          additionalProperties:
            type: string
          description: A key-value map of the URL query paramaters
          type: object
        real:
          description: Is this URL actually serving real content
          type: boolean
        server-city:
          description: "The servers IP geo-location: full city name (if detectable)"
          type: string
        server-country:
          description: "The servers IP geo-location: full country name"
          type: string
        server-country-code:
          description: "The servers IP geo-location: ISO 2-letter country code"
          type: string
        server-hostname:
          description: The servers hostname (PTR record)
          type: string
        server-ip:
          description: The IP address of the server hosting this URL
          type: string
        server-name:
          description: The name of the server software hosting this URL
          type: string
        server-region:
          description: "The servers IP geo-location: full region name (if detectable)"
          type: string
        title:
          description: The document title
          type: string
        url:
          description: The fully qualified URL. This may be different to the URL requested if http-redirect is true
          type: string
        url-path:
          description: The URL path
          type: string
        url-port:
          description: The URL port
          format: int32
          type: integer
        url-protocol:
          description: The URL protocol, usually http or https
          type: string
        valid:
          description: Is this a valid well-formed URL
          type: boolean
      required:
        - http-status-message
        - server-region
        - query
        - server-name
        - url-port
        - server-country
        - real
        - server-city
        - url-path
        - url
        - valid
        - server-hostname
        - load-time
        - http-ok
        - content-size
        - http-status
        - server-country-code
        - content-encoding
        - server-ip
        - url-protocol
        - content-type
        - http-redirect
        - content
        - is-timeout
        - title
        - language-code
        - is-error
      title: URLInfoResponse
      type: object
    VerifySecurityCodeResponse:
      properties:
        verified:
          description: True if the code is valid
          type: boolean
      required:
        - verified
      title: VerifySecurityCodeResponse
      type: object
  securitySchemes:
    api-key:
      description: One of your API keys
      in: header
      name: api-key
      type: apiKey
    user-id:
      description: Your user ID
      in: header
      name: user-id
      type: apiKey
