swagger: '2.0'
info:
  version: '3.7.1'
  title: Neutrino API
  description: The general-purpose API
  contact:
    email: tech@neutrinoapi.com
    name: Neutrino API
    url: https://www.neutrinoapi.com/
host: neutrinoapi.net
basePath: /
securityDefinitions:
  user-id:
    type: apiKey
    description: Your user ID
    name: user-id
    in: header
  api-key:
    type: apiKey
    description: One of your API keys
    name: api-key
    in: header
schemes:
- https
consumes:
- application/json
produces:
- application/json
paths:
  /html-render:
    post:
      description: Render HTML content to PDF, JPG or PNG
      summary: HTML Render
      tags:
      - Imaging
      operationId: HTMLRender
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: content
        in: formData
        required: true
        type: string
        description: The HTML content. This can be either a URL to load from, a file upload (multipart/form-data) or an HTML content string
      - name: format
        in: formData
        required: false
        default: PDF
        type: string
        description: 'Which format to output, available options are: PDF, PNG, JPG'
      - name: page-size
        in: formData
        required: false
        default: A4
        type: string
        description: 'Set the document page size, can be one of: A0 - A9, B0 - B10, Comm10E, DLE or Letter'
      - name: title
        in: formData
        required: false
        type: string
        description: The document title
      - name: margin
        in: formData
        required: false
        default: 0
        type: number
        format: double
        description: The document margin (in mm)
      - name: margin-left
        in: formData
        required: false
        default: 0
        type: number
        format: double
        description: The document left margin (in mm)
      - name: margin-right
        in: formData
        required: false
        default: 0
        type: number
        format: double
        description: The document right margin (in mm)
      - name: margin-top
        in: formData
        required: false
        default: 0
        type: number
        format: double
        description: The document top margin (in mm)
      - name: margin-bottom
        in: formData
        required: false
        default: 0
        type: number
        format: double
        description: The document bottom margin (in mm)
      - name: landscape
        in: formData
        required: false
        default: false
        type: boolean
        description: Set the document to landscape orientation
      - name: zoom
        in: formData
        required: false
        default: 1
        type: number
        format: double
        description: Set the zoom factor when rendering the page (2.0 for double size, 0.5 for half size)
      - name: grayscale
        in: formData
        required: false
        default: false
        type: boolean
        description: Render the final document in grayscale
      - name: css
        in: formData
        required: false
        type: string
        description: "Inject custom CSS into the HTML. e.g. 'body { background-color: red;}'"
      - name: image-width
        in: formData
        required: false
        default: 1024
        type: integer
        format: int32
        description: If rendering to an image format (PNG or JPG) use this image width (in pixels)
      - name: image-height
        in: formData
        required: false
        type: integer
        format: int32
        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
      - name: delay
        in: formData
        required: false
        default: 0
        type: integer
        format: int32
        description: Number of seconds to wait before rendering the page (can be useful for pages with animations etc)
      - name: page-width
        in: formData
        required: false
        type: number
        format: double
        description: Set the PDF page width explicitly (in mm)
      - name: page-height
        in: formData
        required: false
        type: number
        format: double
        description: Set the PDF page height explicitly (in mm)
      - name: timeout
        in: formData
        required: false
        default: 300
        type: integer
        format: int32
        description: Timeout in seconds. Give up if still trying to load the HTML content after this number of seconds
      - name: ignore-certificate-errors
        in: formData
        required: false
        default: false
        type: boolean
        description: Ignore any TLS/SSL certificate errors
      - name: header
        in: formData
        required: false
        type: string
        description: 'The header HTML to insert into each page. The following dynamic tags are supported: {date}, {title}, {url}, {pageNumber}, {totalPages}'
      - name: footer
        in: formData
        required: false
        type: string
        description: 'The footer HTML to insert into each page. The following dynamic tags are supported: {date}, {title}, {url}, {pageNumber}, {totalPages}'
      - name: bg-color
        in: formData
        required: false
        type: string
        description: "For image rendering set the background color in hexadecimal notation (e.g. #0000ff). For PNG output the special value of 'transparent' can be used to create a transparent PNG"
      - name: exec
        in: formData
        required: false
        type: string
        description: "Execute JavaScript on the website. This parameter accepts JavaScript as either a string containing JavaScript or for sending multiple separate statements a JSON array or POST array can also be used. You can also use the following specially defined user interaction functions: <br> <div> sleep(seconds); Just wait/sleep for the specified number of seconds. <br>click('selector'); Click on the first element matching the given selector. <br>focus('selector'); Focus on the first element matching the given selector. <br>keys('characters'); Send the specified keyboard characters. Use click() or focus() first to send keys to a specific element. <br>enter(); Send the Enter key. <br>tab(); Send the Tab key. <br> </div>"
      - name: user-agent
        in: formData
        required: false
        type: string
        description: Override the browsers default user-agent string with this one
      responses:
        '200':
          description: ''
          schema:
            type: string
            default: ''
            format: binary
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /image-watermark:
    post:
      description: Watermark one image with another image
      summary: Image Watermark
      tags:
      - Imaging
      operationId: ImageWatermark
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: image-url
        in: formData
        required: true
        type: string
        description: The URL or Base64 encoded Data URL for the source image. You can also upload an image file directly using multipart/form-data
      - name: watermark-url
        in: formData
        required: true
        type: string
        description: The URL or Base64 encoded Data URL for the watermark image. You can also upload an image file directly using multipart/form-data
      - name: opacity
        in: formData
        required: false
        default: 50
        type: integer
        format: int32
        description: The opacity of the watermark (0 to 100)
      - name: format
        in: formData
        required: false
        default: png
        type: string
        description: The output image format, can be either png or jpg
      - name: position
        in: formData
        required: false
        default: center
        type: string
        description: 'The position of the watermark image, possible values are: <br>center, top-left, top-center, top-right, bottom-left, bottom-center, bottom-right'
      - name: width
        in: formData
        required: false
        type: integer
        format: int32
        description: If set resize the resulting image to this width (in px)
      - name: height
        in: formData
        required: false
        type: integer
        format: int32
        description: If set resize the resulting image to this height (in px)
      - name: resize-mode
        in: formData
        required: false
        default: scale
        type: string
        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>"
      - name: bg-color
        in: formData
        required: false
        default: transparent
        type: string
        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)"
      responses:
        '200':
          description: ''
          schema:
            type: string
            default: ''
            format: binary
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /qr-code:
    post:
      description: Generate a QR code as a PNG image
      summary: QR Code
      tags:
      - Imaging
      operationId: QRCode
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: content
        in: formData
        required: true
        type: string
        description: The content to encode into the QR code (e.g. a URL or a phone number)
      - name: width
        in: formData
        required: false
        default: 256
        type: integer
        format: int32
        description: The width of the QR code (in px)
      - name: height
        in: formData
        required: false
        default: 256
        type: integer
        format: int32
        description: The height of the QR code (in px)
      - name: fg-color
        in: formData
        required: false
        default: '#000000'
        type: string
        description: The QR code foreground color
      - name: bg-color
        in: formData
        required: false
        default: '#ffffff'
        type: string
        description: The QR code background color
      - name: code-format
        in: formData
        required: false
        default: qr
        type: string
        description: 'The barcode format to output. Accepted formats are: qr, c128'
      responses:
        '200':
          description: ''
          schema:
            type: string
            default: ''
            format: binary
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /image-resize:
    post:
      description: Resize an image and output as either JPEG or PNG
      summary: Image Resize
      tags:
      - Imaging
      operationId: ImageResize
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: image-url
        in: formData
        required: true
        type: string
        description: The URL or Base64 encoded Data URL for the source image. You can also upload an image file directly using multipart/form-data
      - name: width
        in: formData
        required: true
        type: integer
        format: int32
        description: The width to resize to (in px)
      - name: height
        in: formData
        required: false
        type: integer
        format: int32
        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
      - name: format
        in: formData
        required: false
        default: png
        type: string
        description: The output image format, can be either png or jpg
      - name: resize-mode
        in: formData
        required: false
        default: scale
        type: string
        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>"
      - name: bg-color
        in: formData
        required: false
        default: transparent
        type: string
        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)"
      responses:
        '200':
          description: ''
          schema:
            type: string
            default: ''
            format: binary
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /sms-verify:
    post:
      description: Send a unique security code to any mobile device via SMS
      summary: SMS Verify
      tags:
      - Telephony
      operationId: SMSVerify
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: number
        in: formData
        required: true
        type: string
        description: The phone number to send a verification code to
      - name: code-length
        in: formData
        required: false
        default: 5
        type: integer
        format: int32
        description: The number of digits to use in the security code (must be between 4 and 12)
      - name: security-code
        in: formData
        required: false
        type: integer
        format: int32
        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
      - name: country-code
        in: formData
        required: false
        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)
      - name: language-code
        in: formData
        required: false
        default: en
        type: string
        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>'
      - name: limit
        in: formData
        required: false
        default: 10
        type: integer
        format: int32
        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
      - name: limit-ttl
        in: formData
        required: false
        default: 1
        type: integer
        format: int32
        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)
      - name: brand-name
        in: formData
        required: false
        type: string
        description: Set a custom brand or product name in the verification message
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/SMSVerifyResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /phone-playback:
    post:
      description: Make an automated call to any valid phone number and playback an audio message
      summary: Phone Playback
      tags:
      - Telephony
      operationId: PhonePlayback
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: number
        in: formData
        required: true
        type: string
        description: The phone number to call. Must be in valid international format
      - name: audio-url
        in: formData
        required: true
        type: string
        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'
      - name: limit
        in: formData
        required: false
        default: 3
        type: integer
        format: int32
        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
      - name: limit-ttl
        in: formData
        required: false
        default: 1
        type: integer
        format: int32
        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)
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/PhonePlaybackResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /hlr-lookup:
    get:
      description: Connect to the global mobile cellular network and retrieve the status of a mobile device
      summary: HLR Lookup
      tags:
      - Telephony
      operationId: HLRLookup
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: number
        in: query
        required: true
        type: string
        description: A phone number
      - name: country-code
        in: query
        required: false
        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)
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/HLRLookupResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /verify-security-code:
    get:
      description: Check if a security code sent via SMS Verify or Phone Verify is valid
      summary: Verify Security Code
      tags:
      - Telephony
      operationId: VerifySecurityCode
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: security-code
        in: query
        required: true
        type: string
        description: The security code to verify
      - name: limit-by
        in: query
        required: false
        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
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/VerifySecurityCodeResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /phone-verify:
    post:
      description: Make an automated call to any valid phone number and playback a unique security code
      summary: Phone Verify
      tags:
      - Telephony
      operationId: PhoneVerify
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: number
        in: formData
        required: true
        type: string
        description: The phone number to send the verification code to
      - name: code-length
        in: formData
        required: false
        default: 6
        type: integer
        format: int32
        description: The number of digits to use in the security code (between 4 and 12)
      - name: security-code
        in: formData
        required: false
        type: integer
        format: int32
        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
      - name: playback-delay
        in: formData
        required: false
        default: 800
        type: integer
        format: int32
        description: The delay in milliseconds between the playback of each security code
      - name: country-code
        in: formData
        required: false
        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)
      - name: language-code
        in: formData
        required: false
        default: en
        type: string
        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>'
      - name: limit
        in: formData
        required: false
        default: 3
        type: integer
        format: int32
        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
      - name: limit-ttl
        in: formData
        required: false
        default: 1
        type: integer
        format: int32
        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)
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/PhoneVerifyResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /email-validate:
    get:
      description: Parse, validate and clean an email address
      summary: Email Validate
      tags:
      - Data Tools
      operationId: EmailValidate
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: email
        in: query
        required: true
        type: string
        description: An email address
      - name: fix-typos
        in: query
        required: false
        default: false
        type: boolean
        description: Automatically attempt to fix typos in the address
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/EmailValidateResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /bad-word-filter:
    post:
      description: Detect bad words, swear words and profanity in a given text
      summary: Bad Word Filter
      tags:
      - Data Tools
      operationId: BadWordFilter
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: content
        in: formData
        required: true
        type: string
        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
      - name: censor-character
        in: formData
        required: false
        type: string
        description: The character to use to censor out the bad words found
      - name: catalog
        in: formData
        required: false
        default: strict
        type: string
        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>"
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/BadWordFilterResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /ua-lookup:
    get:
      description: Parse, validate and get detailed user-agent information from a user agent string or from client hints
      summary: UA Lookup
      tags:
      - Data Tools
      operationId: UALookup
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: ua
        in: query
        required: true
        type: string
        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()'
      - name: ua-version
        in: query
        required: false
        type: string
        description: For client hints this corresponds to the 'UA-Full-Version' header or 'uaFullVersion' from NavigatorUAData
      - name: ua-platform
        in: query
        required: false
        type: string
        description: For client hints this corresponds to the 'UA-Platform' header or 'platform' from NavigatorUAData
      - name: ua-platform-version
        in: query
        required: false
        type: string
        description: For client hints this corresponds to the 'UA-Platform-Version' header or 'platformVersion' from NavigatorUAData
      - name: ua-mobile
        in: query
        required: false
        type: string
        description: For client hints this corresponds to the 'UA-Mobile' header or 'mobile' from NavigatorUAData
      - name: device-model
        in: query
        required: false
        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"
      - name: device-brand
        in: query
        required: false
        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"
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/UALookupResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /phone-validate:
    get:
      description: Parse, validate and get location information about a phone number
      summary: Phone Validate
      tags:
      - Data Tools
      operationId: PhoneValidate
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: number
        in: query
        required: true
        type: string
        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
      - name: country-code
        in: query
        required: false
        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)
      - name: ip
        in: query
        required: false
        type: string
        description: Pass in a users IP address and we will assume numbers are based in the country of the IP address
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/PhoneValidateResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /ip-blocklist-download:
    get:
      description: This API is a direct feed to our IP blocklist data
      summary: IP Blocklist Download
      tags:
      - Security and Networking
      operationId: IPBlocklistDownload
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: format
        in: query
        required: false
        default: csv
        type: string
        description: The data format. Can be either CSV or TXT
      - name: cidr
        in: query
        required: false
        default: false
        type: boolean
        description: Output IPs using CIDR notation. This option should be preferred but is off by default for backwards compatibility
      - name: ip6
        in: query
        required: false
        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
      - name: category
        in: query
        required: false
        default: all
        type: string
        description: 'The category of IP addresses to include in the download file, possible values are: <br> <ul> <li>all - all IPs available on your current plan (excludes VPN providers for any plans lower than Tier 3)</li> <li>bot - all IPs hosting a malicious bot or part of a botnet. This is a broad category which includes brute-force crackers</li> <li>exploit-bot - all IPs hosting an exploit finding bot or running exploit scanning software</li> <li>hijacked - all IPs that are part of a hijacked netblock or a netblock controlled by a criminal organization</li> <li>malware - all IPs involved in distributing or running malware or spyware</li> <li>proxy - all IPs detected as an anonymous web proxy or anonymous HTTP proxy</li> <li>spam-bot - all IPs hosting a spam bot, comment spamming or any other spamming type software</li> <li>spider - all IPs running a hostile web spider / web crawler</li> <li>tor - all IPs that are Tor nodes or running a Tor related service</li> <li>vpn - all IPs belonging to public VPN providers (only available for Tier 3 or higher accounts)</li> </ul>'
      - name: output-encoding
        in: query
        required: false
        type: string
        description: Set this option to 'gzip' to have the output file compressed using gzip
      - name: checksum
        in: query
        required: false
        default: false
        type: boolean
        description: Do not download the file but just return the current files MurmurHash3 checksum. You can use this feature to check if the file has changed since a previous check
      responses:
        '200':
          description: ''
          schema:
            type: string
            default: ''
            format: binary
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /ip-probe:
    get:
      description: Execute a realtime network probe against an IPv4 or IPv6 address
      summary: IP Probe
      tags:
      - Security and Networking
      operationId: IPProbe
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: ip
        in: query
        required: true
        type: string
        description: An IPv4 or IPv6 address. Accepts standard IP notation and also CIDR notation
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/IPProbeResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /host-reputation:
    get:
      description: Check the reputation of an IP address, domain name or URL against a comprehensive list of blacklists and blocklists
      summary: Host Reputation
      tags:
      - Security and Networking
      operationId: HostReputation
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: host
        in: query
        required: true
        type: string
        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
      - name: list-rating
        in: query
        required: false
        default: 3
        type: integer
        format: int32
        description: Only check lists with this rating or better
      - name: zones
        in: query
        required: false
        type: string
        description: Only check these DNSBL zones/hosts. Multiple zones can be supplied as comma-separated values
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/HostReputationResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /email-verify:
    get:
      description: SMTP based email address verification
      summary: Email Verify
      tags:
      - Security and Networking
      operationId: EmailVerify
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: email
        in: query
        required: true
        type: string
        description: An email address
      - name: fix-typos
        in: query
        required: false
        default: false
        type: boolean
        description: Automatically attempt to fix typos in the address
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/EmailVerifyResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /domain-lookup:
    get:
      description: Retrieve domain name details and detect potentially malicious or dangerous domains
      summary: Domain Lookup
      tags:
      - Security and Networking
      operationId: DomainLookup
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: host
        in: query
        required: true
        type: string
        description: A domain name, hostname, FQDN, URL, HTML link or email address to lookup
      - name: live
        in: query
        required: false
        default: true
        type: boolean
        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'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/DomainLookupResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /ip-blocklist:
    get:
      description: The IP Blocklist API will detect potentially malicious or dangerous IP addresses
      summary: IP Blocklist
      tags:
      - Security and Networking
      operationId: IPBlocklist
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: ip
        in: query
        required: true
        type: string
        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
      - name: vpn-lookup
        in: query
        required: false
        default: false
        type: boolean
        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>'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/IPBlocklistResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /ip-info:
    get:
      description: Get location information about an IP address and do reverse DNS (PTR) lookups
      summary: IP Info
      tags:
      - Geolocation
      operationId: IPInfo
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: ip
        in: query
        required: true
        type: string
        description: An IPv4 or IPv6 address. Accepts standard IP notation and also CIDR notation
      - name: reverse-lookup
        in: query
        required: false
        default: false
        type: boolean
        description: Do a reverse DNS (PTR) lookup. This option can add extra delay to the request so only use it if you need it
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/IPInfoResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /geocode-reverse:
    get:
      description: Convert a geographic coordinate (latitude and longitude) into a real world address
      summary: Geocode Reverse
      tags:
      - Geolocation
      operationId: GeocodeReverse
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: latitude
        in: query
        required: true
        type: string
        description: The location latitude in decimal degrees format
      - name: longitude
        in: query
        required: true
        type: string
        description: The location longitude in decimal degrees format
      - name: language-code
        in: query
        required: false
        default: en
        type: string
        description: 'The language to display results in, available languages are: <ul> <li>de, en, es, fr, it, pt, ru</li> </ul>'
      - name: zoom
        in: query
        required: false
        default: address
        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>'
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/GeocodeReverseResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /geocode-address:
    get:
      description: Geocode an address, partial address or just the name of a place
      summary: Geocode Address
      tags:
      - Geolocation
      operationId: GeocodeAddress
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: address
        in: query
        required: false
        type: string
        description: The full address, partial address or name of a place to try and locate. Comma separated address components are preferred.
      - name: house-number
        in: query
        required: false
        type: string
        description: The house/building number to locate
      - name: street
        in: query
        required: false
        type: string
        description: The street/road name to locate
      - name: city
        in: query
        required: false
        type: string
        description: The city/town name to locate
      - name: county
        in: query
        required: false
        type: string
        description: The county/region name to locate
      - name: state
        in: query
        required: false
        type: string
        description: The state name to locate
      - name: postal-code
        in: query
        required: false
        type: string
        description: The postal code to locate
      - name: country-code
        in: query
        required: false
        type: string
        description: Limit result to this country (the default is no country bias)
      - name: language-code
        in: query
        required: false
        default: en
        type: string
        description: 'The language to display results in, available languages are: <ul> <li>de, en, es, fr, it, pt, ru, zh</li> </ul>'
      - name: fuzzy-search
        in: query
        required: false
        default: false
        type: boolean
        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
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/GeocodeAddressResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /bin-list-download:
    get:
      description: Download our entire BIN database for direct use on your own systems
      summary: BIN List Download
      tags:
      - E-commerce
      operationId: BINListDownload
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: include-iso3
        in: query
        required: false
        default: false
        type: boolean
        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
      - name: include-8digit
        in: query
        required: false
        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)
      - name: include-all
        in: query
        required: false
        default: false
        type: boolean
        description: Include all BINs and all available fields in the CSV file (overrides any values set for 'include-iso3' or 'include-8digit')
      - name: output-encoding
        in: query
        required: false
        type: string
        description: Set this option to 'gzip' to have the output file compressed using gzip
      responses:
        '200':
          description: ''
          schema:
            type: string
            default: ''
            format: binary
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /convert:
    get:
      description: A currency and unit conversion tool
      summary: Convert
      tags:
      - E-commerce
      operationId: Convert
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: from-value
        in: query
        required: true
        type: string
        description: The value to convert from (e.g. 10.95)
      - name: from-type
        in: query
        required: true
        type: string
        description: The type of the value to convert from (e.g. USD)
      - name: to-type
        in: query
        required: true
        type: string
        description: The type to convert to (e.g. EUR)
      - name: historical-date
        in: query
        required: false
        type: string
        description: "Convert using the rate on a historical date, accepted date formats are: YYYY-MM-DD, YYYY-MM, YYYY. Historical rates are stored with daily granularity so the date format YYYY-MM-DD is preferred for the highest precision. If an invalid date or a date too far into the past is supplied then the API will respond with 'valid' as false and an empty 'historical-date'"
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ConvertResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /bin-lookup:
    get:
      description: Perform a BIN (Bank Identification Number) or IIN (Issuer Identification Number) lookup
      summary: BIN Lookup
      tags:
      - E-commerce
      operationId: BINLookup
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: bin-number
        in: query
        required: true
        type: string
        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
      - name: customer-ip
        in: query
        required: false
        type: string
        description: Pass in the customers IP address and we will return some extra information about them
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/BINLookupResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /html-clean:
    post:
      description: Clean and sanitize untrusted HTML
      summary: HTML Clean
      tags:
      - WWW
      operationId: HTMLClean
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: content
        in: formData
        required: true
        type: string
        description: The HTML content. This can be either a URL to load from, a file upload (multipart/form-data) or an HTML content string
      - name: output-type
        in: formData
        required: true
        type: string
        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>'
      responses:
        '200':
          description: ''
          schema:
            type: string
            default: ''
            format: binary
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /url-info:
    get:
      description: Parse, analyze and retrieve content from the supplied URL
      summary: URL Info
      tags:
      - WWW
      operationId: URLInfo
      deprecated: false
      produces:
      - application/json
      parameters:
      - name: url
        in: query
        required: true
        type: string
        description: The URL to probe
      - name: fetch-content
        in: query
        required: false
        default: false
        type: boolean
        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)
      - name: ignore-certificate-errors
        in: query
        required: false
        default: false
        type: boolean
        description: Ignore any TLS/SSL certificate errors and load the URL anyway
      - name: timeout
        in: query
        required: false
        default: 60
        type: integer
        format: int32
        description: Timeout in seconds. Give up if still trying to load the URL after this number of seconds
      - name: retry
        in: query
        required: false
        default: 0
        type: integer
        format: int32
        description: If the request fails for any reason try again this many times
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/URLInfoResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
  /browser-bot:
    post:
      description: Browser bot can extract content, interact with keyboard and mouse events, and execute JavaScript on a website
      summary: Browser Bot
      tags:
      - WWW
      operationId: BrowserBot
      deprecated: false
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - name: url
        in: formData
        required: true
        type: string
        description: The URL to load
      - name: timeout
        in: formData
        required: false
        default: 30
        type: integer
        format: int32
        description: Timeout in seconds. Give up if still trying to load the page after this number of seconds
      - name: delay
        in: formData
        required: false
        default: 3
        type: integer
        format: int32
        description: Delay in seconds to wait before capturing any page data, executing selectors or JavaScript
      - name: selector
        in: formData
        required: false
        type: string
        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>
      - name: exec
        in: formData
        required: false
        type: array
        items:
          type: string
        description: "Execute JavaScript on the website. This parameter accepts JavaScript as either a string containing JavaScript or for sending multiple separate statements a JSON array or POST array can also be used. If a statement returns any value it will be returned in the 'exec-results' response. You can also use the following specially defined user interaction functions: <br> <div> sleep(seconds); Just wait/sleep for the specified number of seconds. <br>click('selector'); Click on the first element matching the given selector. <br>focus('selector'); Focus on the first element matching the given selector. <br>keys('characters'); Send the specified keyboard characters. Use click() or focus() first to send keys to a specific element. <br>enter(); Send the Enter key. <br>tab(); Send the Tab key. <br> </div>"
      - name: user-agent
        in: formData
        required: false
        type: string
        description: Override the browsers default user-agent string with this one
      - name: ignore-certificate-errors
        in: formData
        required: false
        default: false
        type: boolean
        description: Ignore any TLS/SSL certificate errors and load the page anyway
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/BrowserBotResponse'
          headers: {}
        '400':
          description: Your API request has been rejected. Check error code for details
          schema:
            $ref: '#/definitions/APIError'
        '403':
          description: You have failed to authenticate
          schema:
            $ref: '#/definitions/APIError'
        '500':
          description: We messed up, sorry! Your request has caused a fatal exception
          schema:
            $ref: '#/definitions/APIError'
        default:
          description: We messed up, sorry! Your request has caused an error
          schema:
            $ref: '#/definitions/APIError'
definitions:
  IPProbeResponse:
    title: IPProbeResponse
    description: Structure of ip-probe
    example:
      as-age: 33
      as-cidr: 194.233.98.0/24
      as-country-code: DE
      as-country-code3: DEU
      as-description: TEFINCOMSA-AS-AP TEFINCOM S.A., PA, Packethub S.A
      as-domains:
      - nordvpn.com
      - packethub.tech
      - packethub.net
      - terratransit.de
      - dedipath.com
      asn: '136787'
      city: Atlanta
      continent-code: NA
      country: United States of America
      country-code: US
      country-code3: USA
      currency-code: USD
      host-domain: ''
      hostname: ''
      ip: 194.233.98.38
      is-bogon: false
      is-hosting: false
      is-isp: false
      is-proxy: false
      is-v4-mapped: false
      is-v6: false
      is-vpn: true
      provider-description: 'The best online VPN service for speed NordVPN: Online VPN service that encrypts your internet traffic and hides your IP with physical location. Upgrade your privacy and security now'
      provider-domain: nordvpn.com
      provider-type: vpn
      provider-website: https://nordvpn.com/
      region: Georgia
      region-code: GA
      valid: true
      vpn-domain: nordvpn.com
    type: object
    properties:
      valid:
        description: True if this is a valid IPv4 or IPv6 address
        type: boolean
      country:
        description: Full country name
        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
      country-code:
        description: ISO 2-letter country code
        type: string
      hostname:
        description: The IPs full hostname (PTR)
        type: string
      provider-domain:
        description: The domain name of the provider
        type: string
      city:
        description: Full city name (if detectable)
        type: string
      provider-website:
        description: The website URL for the provider
        type: string
      ip:
        description: The IPv4 or IPv6 address returned
        type: string
      region:
        description: Full region name (if detectable)
        type: string
      provider-description:
        description: A description of the provider (usually extracted from the providers website)
        type: string
      continent-code:
        description: ISO 2-letter continent code
        type: string
      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
      country-code3:
        description: ISO 3-letter country code
        type: string
      currency-code:
        description: ISO 4217 currency code associated with the country
        type: string
      is-vpn:
        description: True if this IP ia a VPN
        type: boolean
      is-proxy:
        description: True if this IP is a proxy
        type: boolean
      asn:
        description: The autonomous system (AS) number
        type: string
      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-domains:
        description: Array of all the domains associated with the autonomous system (AS)
        type: array
        items:
          type: string
      as-description:
        description: The autonomous system (AS) description / company name
        type: string
      as-age:
        description: The age of the autonomous system (AS) in number of years since registration
        type: integer
        format: int32
      host-domain:
        description: The IPs host domain
        type: string
      vpn-domain:
        description: The domain of the VPN provider (may be empty if the VPN domain is not detectable)
        type: string
      is-v6:
        description: True if this is a IPv6 address. False if IPv4
        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-bogon:
        description: True if this is a bogon IP address such as a private network, local network or reserved address
        type: boolean
      region-code:
        description: ISO 3166-2 region code (if 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
  ConvertResponse:
    title: ConvertResponse
    description: Structure of convert
    example:
      from-name: United States Dollar
      from-symbol: $
      from-type: USD
      from-value: '100'
      historical-date: ''
      result: '92.3066'
      result-float: 92.3066
      to-name: Euro
      to-symbol: €
      to-type: EUR
      valid: true
    type: object
    properties:
      valid:
        description: True if the conversion was successful and produced a valid result
        type: boolean
      result:
        description: The result of the conversion in string format
        type: string
      from-value:
        description: The value being converted from
        type: string
      to-type:
        description: The type being converted to
        type: string
      from-type:
        description: The type of the value being converted from
        type: string
      result-float:
        description: The result of the conversion as a floating-point number
        type: number
        format: double
      from-name:
        description: The full name of the type being converted from
        type: string
      from-symbol:
        description: The standard UTF-8 symbol used to represent the type being converted from
        type: string
      to-name:
        description: The full name of the type being converted to
        type: string
      to-symbol:
        description: The standard UTF-8 symbol used to represent the type being converted to
        type: string
      historical-date:
        description: "If a historical conversion was made using the 'historical-date' request option this will contain the exact date used for the conversion in ISO format: YYYY-MM-DD"
        type: string
    required:
    - valid
    - result
    - from-value
    - to-type
    - from-type
    - result-float
    - from-name
    - from-symbol
    - to-name
    - to-symbol
    - historical-date
  PhonePlaybackResponse:
    title: PhonePlaybackResponse
    description: Structure of phone-playback
    type: object
    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
  GeocodeAddressResponse:
    title: GeocodeAddressResponse
    description: Structure of geocode-address
    example:
      found: 1
      locations:
      - address: 1 Molesworth Street, Pipitea, Wellington 6140, New Zealand
        address-components:
          city: Wellington
          country: New Zealand
          county: Wellington City
          house-number: '1'
          postal-code: '6140'
          road: Molesworth Street
          state: Wellington
          suburb: Pipitea
        city: Wellington
        country: New Zealand
        country-code: NZ
        country-code3: NZL
        currency-code: NZD
        language-code: en
        latitude: -41.2775847
        location-tags:
        - house
        location-type: address
        longitude: 174.7775229
        postal-address: >-
          1 Molesworth Street

          Pipitea

          Wellington 6140

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

        Pipitea

        Wellington 6140

        New Zealand
      postal-code: '6140'
      region-code: WGN
      state: Wellington
      timezone:
        abbr: NZDT
        date: 2025-03-11
        id: Pacific/Auckland
        name: New Zealand Daylight Time
        offset: +13:00
        time: 11:15:09.73809
    type: object
    properties:
      country:
        description: The country of the location
        type: string
      found:
        description: True if these coordinates map to a real location
        type: boolean
      address:
        description: The complete address using comma-separated values
        type: string
      city:
        description: The city of the location
        type: string
      country-code:
        description: The ISO 2-letter country code of the location
        type: string
      postal-code:
        description: The postal code for the location
        type: string
      state:
        description: The state of the location
        type: string
      address-components:
        description: The components which make up the address such as road, city, state, etc
        type: object
        additionalProperties:
          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
      location-type:
        description: 'The detected location type ordered roughly from most to least precise, possible values are: <br> <ul> <li>address - indicates a precise street address</li> <li>street - accurate to the street level but may not point to the exact location of the house/building number</li> <li>city - accurate to the city level, this includes villages, towns, suburbs, etc</li> <li>postal-code - indicates a postal code area (no house or street information present)</li> <li>railway - location is part of a rail network such as a station or railway track</li> <li>natural - indicates a natural feature, for example a mountain peak or a waterway</li> <li>island - location is an island or archipelago</li> <li>administrative - indicates an administrative boundary such as a country, state or province</li> </ul>'
        type: string
      location-tags:
        description: 'Array of strings containing any location tags associated with the address. Tags are additional pieces of metadata about a specific location, there are thousands of different tags. Some examples of tags: shop, office, cafe, bank, pub'
        type: array
        items:
          type: string
      latitude:
        description: The location latitude
        type: number
        format: double
      longitude:
        description: The location longitude
        type: number
        format: double
      timezone:
        $ref: '#/definitions/Timezone'
      region-code:
        description: The ISO 3166-2 region code for the location
        type: string
      postal-address:
        description: The formatted address using local standards suitable for printing on an envelope
        type: string
      language-code:
        description: The ISO 2-letter language code for the official language spoken in the country
        type: string
    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
    - language-code
  HostReputationResponse:
    title: HostReputationResponse
    description: Structure of host-reputation
    example:
      host: neutrinoapi.com
      is-listed: false
      list-count: 0
      lists:
      - is-listed: false
        list-host: uribl.zeustracker.abuse.ch
        list-name: abuse.ch ZeuS Tracker Domain
        list-rating: 3
        response-time: 233
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: uribl.abuse.ro
        list-name: abuse.ro URI RBL
        list-rating: 3
        response-time: 309
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: dblack.mail.abusix.zone
        list-name: Abusix Domain Spam
        list-rating: 2
        response-time: 38
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: bsb.empty.us
        list-name: Blog Spam Blocklist (empty.us)
        list-rating: 3
        response-time: 135
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: bsb.spamlookup.net
        list-name: Blog Spam Blocklist (spamlookup.net)
        list-rating: 3
        response-time: 23
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: bl.fmb.la
        list-name: fmb.la
        list-rating: 3
        response-time: 256
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: dbl.nordspam.com
        list-name: NordSpam Domain Blacklist
        list-rating: 2
        response-time: 17
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: ubl.nszones.com
        list-name: nsZones.com SURBL
        list-rating: 3
        response-time: 160
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: rhsbl.rymsho.ru
        list-name: Rymsho's RHSBL
        list-rating: 3
        response-time: 42
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: public.sarbl.org
        list-name: SARBL
        list-rating: 2
        response-time: 201
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: rhsbl.scientificspam.net
        list-name: Scientific Spam
        list-rating: 2
        response-time: 21
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: nomail.rhsbl.sorbs.net
        list-name: SORBS Domain names indicating no email sender
        list-rating: 2
        response-time: 112
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: badconf.rhsbl.sorbs.net
        list-name: SORBS Domain names pointing to bad addresses
        list-rating: 2
        response-time: 108
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: fresh.spameatingmonkey.net
        list-name: Spam Eating Monkey SEM-FRESH
        list-rating: 2
        response-time: 131
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: fresh10.spameatingmonkey.net
        list-name: Spam Eating Monkey SEM-FRESH10
        list-rating: 2
        response-time: 136
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: fresh15.spameatingmonkey.net
        list-name: Spam Eating Monkey SEM-FRESH15
        list-rating: 2
        response-time: 131
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: uribl.spameatingmonkey.net
        list-name: Spam Eating Monkey SEM-URI
        list-rating: 2
        response-time: 130
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: urired.spameatingmonkey.net
        list-name: Spam Eating Monkey SEM-URIRED
        list-rating: 2
        response-time: 131
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: dbl.spamhaus.org
        list-name: Spamhaus DBL Domain Block List
        list-rating: 1
        response-time: 58
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: dbl.suomispam.net
        list-name: Suomispam Domain Blacklist
        list-rating: 2
        response-time: 24
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: multi.surbl.org
        list-name: SURBL multi (Combined SURBL list)
        list-rating: 1
        response-time: 106
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: uribl.swinog.ch
        list-name: Swinog URIBL
        list-rating: 2
        response-time: 55
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: dob.sibl.support-intelligence.net
        list-name: The Day Old Bread List (aka DOB)
        list-rating: 3
        response-time: 168
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: black.uribl.com
        list-name: URIBL black
        list-rating: 1
        response-time: 261
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: uri.blacklist.woody.ch
        list-name: Woody's SMTP Blacklist URIBL
        list-rating: 3
        response-time: 3229
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: rhsbl.zapbl.net
        list-name: ZapBL RHSBL
        list-rating: 3
        response-time: 36
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: zebl.zoneedit.com
        list-name: ZoneEdit combined RHSBL
        list-rating: 3
        response-time: 129
        return-code: ''
        txt-record: ''
      - is-listed: false
        list-host: ban.zebl.zoneedit.com
        list-name: ZoneEdit deny DNS services domains
        list-rating: 3
        response-time: 129
        return-code: ''
        txt-record: ''
    type: object
    properties:
      is-listed:
        description: Is this host blacklisted
        type: boolean
      lists:
        description: Array of objects for each DNSBL checked
        type: array
        items:
          $ref: '#/definitions/Blacklist'
      list-count:
        description: The number of DNSBLs the host is listed on
        type: integer
        format: int32
      host:
        description: The IP address or host name
        type: string
    required:
    - is-listed
    - lists
    - list-count
    - host
  BadWordFilterResponse:
    title: BadWordFilterResponse
    description: Structure of bad-word-filter
    example:
      bad-words-list:
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      - REDACTED
      bad-words-total: 50
      censored-content: ''
      is-bad: true
    type: object
    properties:
      bad-words-list:
        description: An array of the bad words found
        type: array
        items:
          type: string
      bad-words-total:
        description: Total number of bad words detected
        type: integer
        format: int32
      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
  Blacklist:
    title: Blacklist
    description: Structure of lists
    type: object
    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-rating:
        description: The list rating [1-3] with 1 being the best rating and 3 the lowest rating
        type: integer
        format: int32
      list-name:
        description: The name of the DNSBL
        type: string
      txt-record:
        description: The TXT record returned for this listing (only set if listed)
        type: string
      return-code:
        description: The specific return code for this listing (only set if listed)
        type: string
      response-time:
        description: The DNSBL server response time in milliseconds
        type: integer
        format: int32
    required:
    - is-listed
    - list-host
    - list-rating
    - list-name
    - txt-record
    - return-code
    - response-time
  BINLookupResponse:
    title: BINLookupResponse
    description: Structure of bin-lookup
    example:
      bin-number: '48334884'
      card-brand: VISA
      card-category: PLATINUM
      card-type: CREDIT
      country: NEW ZEALAND
      country-code: NZ
      country-code3: NZL
      currency-code: NZD
      ip-blocklisted: false
      ip-blocklists: []
      ip-city: ''
      ip-country: ''
      ip-country-code: ''
      ip-country-code3: ''
      ip-matches-bin: false
      ip-region: ''
      is-commercial: false
      is-prepaid: false
      issuer: KIWIBANK, LTD.
      issuer-phone: ''
      issuer-website: http://www.kiwibank.co.nz
      valid: true
    type: object
    properties:
      country:
        description: The full country name of the issuer
        type: string
      ip-city:
        description: The city of the customers IP (if detectable)
        type: string
      ip-matches-bin:
        description: True if the customers IP country matches the BIN country
        type: boolean
      card-type:
        description: 'The card type, will always be one of: DEBIT, CREDIT, CHARGE CARD'
        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
      ip-country-code:
        description: The ISO 2-letter country code of the customers IP
        type: string
      ip-country:
        description: The country of the customers IP
        type: string
      issuer:
        description: The card 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
      valid:
        description: Is this a valid BIN or IIN number
        type: boolean
      ip-blocklists:
        description: An array of strings indicating which blocklists this IP is listed on
        type: array
        items:
          type: string
      issuer-website:
        description: The card issuers website
        type: string
      country-code:
        description: The ISO 2-letter country code of the issuer
        type: string
      ip-region:
        description: The region of the customers IP (if detectable)
        type: string
      card-brand:
        description: The card brand (e.g. Visa or Mastercard)
        type: string
      issuer-phone:
        description: The card issuers phone number
        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-country-code3:
        description: The ISO 3-letter country code of the customers IP
        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
      bin-number:
        description: The BIN number returned. You may count the number of digits in this field to determine if the BIN is likely to be based on an 8-digit or 6-digit card
        type: string
    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
  Location:
    title: Location
    description: Structure of locations
    type: object
    properties:
      country:
        description: The country of the location
        type: string
      address:
        description: The complete address using comma-separated values
        type: string
      city:
        description: The city 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
      latitude:
        description: The location latitude
        type: number
        format: double
      postal-code:
        description: The postal code for the location
        type: string
      longitude:
        description: The location longitude
        type: number
        format: double
      state:
        description: The state of the location
        type: string
      address-components:
        description: The components which make up the address such as road, city, state, etc
        type: object
        additionalProperties:
          type: string
      currency-code:
        description: ISO 4217 currency code associated with the country
        type: string
      location-type:
        description: 'The detected location type ordered roughly from most to least precise, possible values are: <br> <ul> <li>address - indicates a precise street address</li> <li>street - accurate to the street level but may not point to the exact location of the house/building number</li> <li>city - accurate to the city level, this includes villages, towns, suburbs, etc</li> <li>postal-code - indicates a postal code area (no house or street information present)</li> <li>railway - location is part of a rail network such as a station or railway track</li> <li>natural - indicates a natural feature, for example a mountain peak or a waterway</li> <li>island - location is an island or archipelago</li> <li>administrative - indicates an administrative boundary such as a country, state or province</li> </ul>'
        type: string
      location-tags:
        description: 'Array of strings containing any location tags associated with the address. Tags are additional pieces of metadata about a specific location, there are thousands of different tags. Some examples of tags: shop, office, cafe, bank, pub'
        type: array
        items:
          type: string
      timezone:
        $ref: '#/definitions/Timezone'
      region-code:
        description: The ISO 3166-2 region code for the location
        type: string
      postal-address:
        description: The formatted address using local standards suitable for printing on an envelope
        type: string
      language-code:
        description: The ISO 2-letter language code for the official language spoken in the country
        type: string
    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
    - language-code
  APIError:
    title: APIError
    type: object
    properties:
      api-error:
        description: API error code. If set and > 0 then an API error has occurred your request could not be completed
        type: integer
        format: int32
      api-error-msg:
        description: API error message
        type: string
    required:
    - api-error
    - api-error-msg
  URLComponents:
    title: URLComponents
    description: Structure of url-components
    type: object
    properties:
      url:
        description: The complete and final URL
        type: string
      host:
        description: The host of the URL. Will be either a domain name, sub-domain or IP address
        type: string
      protocol:
        description: The protocol of the URL. For a website URL this will be either 'https' or 'http'
        type: string
      path:
        description: The path of the URL. This is the part coming after the host and specifies which resource to load
        type: string
      port:
        description: The port of the URL. This is usually 443 for HTTPS and 80 for HTTP unless otherwise specified in the URL
        type: integer
        format: int32
      query:
        description: The query of the URL. Contains a key/value map of any HTTP GET query parameters present in the URL
        type: object
        additionalProperties:
          type: string
    required:
    - url
    - host
    - protocol
    - path
    - port
    - query
  ExecResult:
    title: ExecResult
    description: Structure of exec-results
    type: object
    properties:
      statement:
        description: The JavaScript statement that was executed
        type: string
      result:
        description: The result of the executed JavaScript statement. Will be empty if the statement returned nothing
        type: string
    required:
    - statement
    - result
security:
- user-id: []
  api-key: []
tags:
- name: Imaging
  description: APIs for imaging and rendering
- name: Telephony
  description: APIs for live telephony
- name: Data Tools
  description: APIs for processing, cleaning and validating data
- name: Security and Networking
  description: APIs for security and networking tasks
- name: Geolocation
  description: APIs for geolocation tasks
- name: E-commerce
  description: APIs for E-commerce tasks
- name: WWW
  description: APIs for website and HTML processing