Neutrino API Imaging API

APIs for imaging and rendering

OpenAPI Specification

neutrino-api-imaging-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Neutrino Imaging API
  version: 3.7.2
  contact:
    name: Neutrino API
    url: https://www.neutrinoapi.com/
    email: tech@neutrinoapi.com
  description: 'Operations tagged Imaging across 2 of this provider''s published API definitions: neutrino-api-openapi-3.1.json, neutrino-api-swagger-2.0.json. Each path carries the servers of the definition it was published in.'
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: {}
security:
- user-id: []
  api-key: []
tags:
- name: Imaging
  description: APIs for imaging and rendering
paths:
  /html-render:
    parameters: []
    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: {}
    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
  /image-watermark:
    parameters: []
    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: {}
    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
  /qr-code:
    parameters: []
    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: {}
    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
  /image-resize:
    parameters: []
    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: {}
    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
components:
  schemas:
    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
      description: For non-200 responses this contains specific API error details
      examples:
      - api-error: 43
        api-error-msg: ACCESS DENIED. USER ID OR API KEY INVALID
  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
securityDefinitions:
  user-id:
    type: apiKey
    description: Your user ID
    name: user-id
    in: header
  api-key:
    type: apiKey
    description: One of your API keys
    name: api-key
    in: header
x-refined-from:
- neutrino-api-openapi-3.1.json
- neutrino-api-swagger-2.0.json