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