Image Recognition and Processing API API Reference

Image Recognition and Processing APIs let you use Machine Learning to recognize and process images, and also perform useful image modification operations.

Swagger OpenAPI Specification | .NET Framework Client | .NET Core Client | Java Client | Node.JS Client | Python Client | Drupal Client

API Endpoint
https://api.cloudmersive.com
Schemes: https
Version: v1

Authentication

Apikey

API Key Authentication

type
apiKey
name
Apikey
in
header

Artistic

Transform an image into an artistic painting automatically

POST /image/artistic/painting/{style}


Uses machine learning to automatically transform an image into an artistic painting. Due to depth of AI processing, depending on image size this operation can take up to 20 seconds.



style: string
in path

The style of the painting to apply. To start, try "udnie" a painting style. Possible values are: "udnie", "wave", "la_muse", "rain_princess".

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert

Convert input image to PNG format

POST /image/convert/to/png


Converts the input image into PNG format. Transparency is preserved when present. Supported input file formats include AAI, ART, ARW, AVS, BPG, BMP, BMP2, BMP3, BRF, CALS, CGM, CIN, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DIB, DJVU, DNG, DOT, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EXR, FAX, FIG, FITS, FPX, GIF, GPLT, GRAY, HDR, HEIC, HPGL, HRZ, ICO, ISOBRL, ISBRL6, JBIG, JNG, JP2, JPT, J2C, J2K, JPEG/JPG, JXR, MAT, MONO, MNG, M2V, MRW, MTV, NEF, ORF, OTB, P7, PALM, PAM, PBM, PCD, PCDS, PCL, PCX, PDF, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PNG, PNG8, PNG00, PNG24, PNG32, PNG48, PNG64, PNM, PPM, PSB, PSD, PTIF, PWB, RAD, RAF, RGB, RGBA, RGF, RLA, RLE, SCT, SFW, SGI, SID, SUN, SVG, TGA, TIFF, TIM, UIL, VIFF, VICAR, VBMP, WDP, WEBP, WPG, X, XBM, XCF, XPM, XWD, X3F, YCbCr, YCbCrA, YUV.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert input image to JPG, JPEG format

POST /image/convert/to/jpg/{quality}


Converts the input image into JPEG/JPG format. Customize encoding parameters. Supported input file formats include AAI, ART, ARW, AVS, BPG, BMP, BMP2, BMP3, BRF, CALS, CGM, CIN, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DIB, DJVU, DNG, DOT, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EXR, FAX, FIG, FITS, FPX, GIF, GPLT, GRAY, HDR, HEIC, HPGL, HRZ, ICO, ISOBRL, ISBRL6, JBIG, JNG, JP2, JPT, J2C, J2K, JPEG/JPG, JXR, MAT, MONO, MNG, M2V, MRW, MTV, NEF, ORF, OTB, P7, PALM, PAM, PBM, PCD, PCDS, PCL, PCX, PDF, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PNG, PNG8, PNG00, PNG24, PNG32, PNG48, PNG64, PNM, PPM, PSB, PSD, PTIF, PWB, RAD, RAF, RGB, RGBA, RGF, RLA, RLE, SCT, SFW, SGI, SID, SUN, SVG, TGA, TIFF, TIM, UIL, VIFF, VICAR, VBMP, WDP, WEBP, WPG, X, XBM, XCF, XPM, XWD, X3F, YCbCr, YCbCrA, YUV.



quality: integer (int32)
in path

Set the JPEG quality level; lowest quality is 1 (highest compression), highest quality (lowest compression) is 100; recommended value is 75

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert input image to GIF format

POST /image/convert/to/gif


Converts the input image into GIF format. Supported input file formats include AAI, ART, ARW, AVS, BPG, BMP, BMP2, BMP3, BRF, CALS, CGM, CIN, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DIB, DJVU, DNG, DOT, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EXR, FAX, FIG, FITS, FPX, GIF, GPLT, GRAY, HDR, HEIC, HPGL, HRZ, ICO, ISOBRL, ISBRL6, JBIG, JNG, JP2, JPT, J2C, J2K, JPEG/JPG, JXR, MAT, MONO, MNG, M2V, MRW, MTV, NEF, ORF, OTB, P7, PALM, PAM, PBM, PCD, PCDS, PCL, PCX, PDF, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PNG, PNG8, PNG00, PNG24, PNG32, PNG48, PNG64, PNM, PPM, PSB, PSD, PTIF, PWB, RAD, RAF, RGB, RGBA, RGF, RLA, RLE, SCT, SFW, SGI, SID, SUN, SVG, TGA, TIFF, TIM, UIL, VIFF, VICAR, VBMP, WDP, WEBP, WPG, X, XBM, XCF, XPM, XWD, X3F, YCbCr, YCbCrA, YUV.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert input image to Photoshop PSD format

POST /image/convert/to/psd


Converts the input image into PSD format. Supported input file formats include AAI, ART, ARW, AVS, BPG, BMP, BMP2, BMP3, BRF, CALS, CGM, CIN, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DIB, DJVU, DNG, DOT, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EXR, FAX, FIG, FITS, FPX, GIF, GPLT, GRAY, HDR, HEIC, HPGL, HRZ, ICO, ISOBRL, ISBRL6, JBIG, JNG, JP2, JPT, J2C, J2K, JPEG/JPG, JXR, MAT, MONO, MNG, M2V, MRW, MTV, NEF, ORF, OTB, P7, PALM, PAM, PBM, PCD, PCDS, PCL, PCX, PDF, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PNG, PNG8, PNG00, PNG24, PNG32, PNG48, PNG64, PNM, PPM, PSB, PSD, PTIF, PWB, RAD, RAF, RGB, RGBA, RGF, RLA, RLE, SCT, SFW, SGI, SID, SUN, SVG, TGA, TIFF, TIM, UIL, VIFF, VICAR, VBMP, WDP, WEBP, WPG, X, XBM, XCF, XPM, XWD, X3F, YCbCr, YCbCrA, YUV.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert input image to Bitmap BMP format

POST /image/convert/to/bmp


Converts the input image into PSD format. Supported input file formats include AAI, ART, ARW, AVS, BPG, BMP, BMP2, BMP3, BRF, CALS, CGM, CIN, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DIB, DJVU, DNG, DOT, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EXR, FAX, FIG, FITS, FPX, GIF, GPLT, GRAY, HDR, HEIC, HPGL, HRZ, ICO, ISOBRL, ISBRL6, JBIG, JNG, JP2, JPT, J2C, J2K, JPEG/JPG, JXR, MAT, MONO, MNG, M2V, MRW, MTV, NEF, ORF, OTB, P7, PALM, PAM, PBM, PCD, PCDS, PCL, PCX, PDF, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PNG, PNG8, PNG00, PNG24, PNG32, PNG48, PNG64, PNM, PPM, PSB, PSD, PTIF, PWB, RAD, RAF, RGB, RGBA, RGF, RLA, RLE, SCT, SFW, SGI, SID, SUN, SVG, TGA, TIFF, TIM, UIL, VIFF, VICAR, VBMP, WDP, WEBP, WPG, X, XBM, XCF, XPM, XWD, X3F, YCbCr, YCbCrA, YUV.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert input image to WebP format

POST /image/convert/to/webp


Converts the input image into WebP format. Supported input file formats include AAI, ART, ARW, AVS, BPG, BMP, BMP2, BMP3, BRF, CALS, CGM, CIN, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DIB, DJVU, DNG, DOT, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EXR, FAX, FIG, FITS, FPX, GIF, GPLT, GRAY, HDR, HEIC, HPGL, HRZ, ICO, ISOBRL, ISBRL6, JBIG, JNG, JP2, JPT, J2C, J2K, JPEG/JPG, JXR, MAT, MONO, MNG, M2V, MRW, MTV, NEF, ORF, OTB, P7, PALM, PAM, PBM, PCD, PCDS, PCL, PCX, PDF, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PNG, PNG8, PNG00, PNG24, PNG32, PNG48, PNG64, PNM, PPM, PSB, PSD, PTIF, PWB, RAD, RAF, RGB, RGBA, RGF, RLA, RLE, SCT, SFW, SGI, SID, SUN, SVG, TGA, TIFF, TIM, UIL, VIFF, VICAR, VBMP, WDP, WEBP, WPG, X, XBM, XCF, XPM, XWD, X3F, YCbCr, YCbCrA, YUV.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert input image to TIFF format

POST /image/convert/to/tiff


Converts the input image into TIFF format. Supported input file formats include AAI, ART, ARW, AVS, BPG, BMP, BMP2, BMP3, BRF, CALS, CGM, CIN, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DIB, DJVU, DNG, DOT, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EXR, FAX, FIG, FITS, FPX, GIF, GPLT, GRAY, HDR, HEIC, HPGL, HRZ, ICO, ISOBRL, ISBRL6, JBIG, JNG, JP2, JPT, J2C, J2K, JPEG/JPG, JXR, MAT, MONO, MNG, M2V, MRW, MTV, NEF, ORF, OTB, P7, PALM, PAM, PBM, PCD, PCDS, PCL, PCX, PDF, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PNG, PNG8, PNG00, PNG24, PNG32, PNG48, PNG64, PNM, PPM, PSB, PSD, PTIF, PWB, RAD, RAF, RGB, RGBA, RGF, RLA, RLE, SCT, SFW, SGI, SID, SUN, SVG, TGA, TIFF, TIM, UIL, VIFF, VICAR, VBMP, WDP, WEBP, WPG, X, XBM, XCF, XPM, XWD, X3F, YCbCr, YCbCrA, YUV.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Edit

Adaptively adjust the contrast of the image to be more appealing and easy to see

POST /image/edit/contrast/{gamma}/adaptive


Uses Gamma to adjust the contrast adaptively the way the human eye sees the world. Results significantly improve the viewability and visual appeal of the image.



gamma: number (double)
in path

Gamma value to adjust the contrast in the image. Recommended value is 2.0. Values between 0.0 and 1.0 will reduce contrast, while values above 1.0 will increase contrast.

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Rotate an image any number of degrees

POST /image/edit/rotate/{degrees}/angle


Rotates an image by an arbitrary number of degrees



degrees: number (double)
in path

Degrees to rotate the image; values range from 0.0 to 360.0.

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Crop an image to a rectangular area

POST /image/edit/crop/rectangle/{left}/{top}/{width}/{height}


Crop an image to a target rectangular area



left: integer (int32)
in path

The left edge of the rectangular crop area in pixels (X).

top: integer (int32)
in path

The top edge of the rectangular crop area in pixels (Y).

width: integer (int32)
in path

The width of the rectangular crop area in pixels.

height: integer (int32)
in path

The height of the rectangular crop area in pixels.

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Crop an image to an circular area

POST /image/edit/crop/circle/{left}/{top}/{radius}


Crop an image to a target circular area



left: integer (int32)
in path

The left edge of the circular crop area in pixels (X).

top: integer (int32)
in path

The top edge of the circular crop area in pixels (Y).

radius: integer (int32)
in path

The radius of the circular crop area in pixels.

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Invert, negate the colors in the image

POST /image/edit/invert


Inverts (negates) all of the colors in the image. If the image contains transparency, the transparency will first be removed prior to inverting the image.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Remove transparency from the image

POST /image/edit/remove-transparency


Removes any active transparency in the image. Effectively renders the image at the same resolution, in the same file format, over a white background, thus removing transparency.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Remove EXIF data from the image

POST /image/edit/remove-exif


Removes any EXIF data and profiles .



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Normalizes image rotation and removes EXIF rotation data

POST /image/edit/auto-orient/remove-exif


Automatically orients the input image based on EXIF information and then removes the EXIF information. EXIF is an additional set of information stored in some images taken with cell phone cameras based on the orientation of the camera. By normalizing rotation and removing EXIF data these images become much easier to process.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Add a customizeable drop shadow to an image

POST /image/edit/drop-shadow/{X}/{Y}/{sigma}/{opacity}


Add a customizeable drop shadow to the image



X: integer (int32)
in path

Horizontal (X) offset of the drop shadow

Y: integer (int32)
in path

Vertical (Y) offset of the drop shadow

sigma: integer (int32)
in path

Sigma (blur distance) of the drop shadow

opacity: integer (int32)
in path

Opacity of the drop shadow; 0 is 0% and 100 is 100%

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Composite two images together

POST /image/edit/composite/{location}


Composites two input images together; a layered image onto a base image. The first image you input is the base image. The second image (the layered image) will be composited on top of this base image. Supports PNG transparency. To control padding you can include transparent pixels at the border(s) of your layered images as appropriate.



location: string
in path

Location to composite the layered images; possible values are: "center", "top-left", "top-center", "top-right", "center-left", "center-right", "bottom-left", "bottom-center", "bottom-right"

baseImage: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

layeredImage: file
in formData

Image to layer on top of the base image.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Composite two images together precisely

POST /image/edit/composite/precise


Composites two input images together; a layered image onto a base image. Position is based on distance in pixels from each side. The first image you input is the base image. The second image (the layered image) will be composited on top of this base image. Supports PNG transparency. To control padding you can include transparent pixels at the border(s) of your layered images as appropriate. Providing multiple parameters in a single axis (for example top and bottom) is not recommended, since only one of the parameters will be used per axis.



baseImage: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

layeredImage: file
in formData

Image to layer on top of the base image.

top: integer
in header

Optional; Desired distance in pixels from the top of the base image to the top of the layered image.

bottom: integer
in header

Optional; Desired distance in pixels from the bottom of the base image to the bottom of the layered image.

left: integer
in header

Optional; Desired distance in pixels from the left side of the base image to the left side of the layered image.

right: integer
in header

Optional; Desired distance in pixels from the right side of the base image to the right side of the layered image.

width: integer
in header

Optional; Desired width of the layered image in pixels. Leave height empty or 0 to automatically scale the image proportionally.

height: integer
in header

Optional; Desired height of the layered image in pixels. Leave width empty or 0 to automatically scale the image proportionally.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Draw text onto an image

POST /image/edit/draw/text


Draw one or more pieces of text, with customized visuals, onto an image



Draw text parameters

Code Example:
Request Content-Types: application/json, text/json, application/xml, text/xml, application/x-www-form-urlencoded
Request Example
{
  "BaseImageBytes": "string (byte)",
  "BaseImageUrl": "string",
  "TextToDraw": [
    {
      "Text": "string",
      "FontFamilyName": "string",
      "FontSize": "number (double)",
      "Color": "string",
      "X": "number (double)",
      "Y": "number (double)",
      "Width": "number (double)",
      "Height": "number (double)"
    }
  ]
}
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Draw a polygon onto an image

POST /image/edit/draw/polygon


Draw one or more polygons, with customized visuals, onto an image



Polygon drawing request parameters

Code Example:
Request Content-Types: application/json, text/json, application/xml, text/xml, application/x-www-form-urlencoded
Request Example
{
  "BaseImageBytes": "string (byte)",
  "BaseImageUrl": "string",
  "PolygonsToDraw": [
    {
      "BorderColor": "string",
      "BorderWidth": "number (double)",
      "FillColor": "string",
      "Points": [
        {
          "X": "number (double)",
          "Y": "number (double)"
        }
      ]
    }
  ]
}
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Draw a rectangle onto an image

POST /image/edit/draw/rectangle


Draw one or more rectangles, with customized visuals, onto an image



Draw rectangle parameters

Code Example:
Request Content-Types: application/json, text/json, application/xml, text/xml, application/x-www-form-urlencoded
Request Example
{
  "BaseImageBytes": "string (byte)",
  "BaseImageUrl": "string",
  "RectanglesToDraw": [
    {
      "BorderColor": "string",
      "BorderWidth": "number (double)",
      "FillColor": "string",
      "X": "number (double)",
      "Y": "number (double)",
      "Width": "number (double)",
      "Height": "number (double)"
    }
  ]
}
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Face

Detect and find faces in an image

POST /image/face/locate


Locate the positions of all faces in an image



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:

OK

Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "Faces": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "RightX": "integer (int32)",
      "BottomY": "integer (int32)"
    }
  ],
  "FaceCount": "integer (int32)",
  "ErrorDetails": "string"
}

Detect and find faces and landmarks eyes and nose and mouth in image

POST /image/face/locate-with-landmarks


Locate the positions of all faces in an image, along with the eyes, eye brows, nose and mouth components of each



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "Faces": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "RightX": "integer (int32)",
      "BottomY": "integer (int32)",
      "LeftEyebrow": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "RightEyebrow": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "LeftEye": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "RightEye": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "BottomAndSidesOfFace": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "NoseBridge": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "NoseBottom": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "LipsInnerOutline": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "LipsOuterOutline": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ]
    }
  ],
  "FaceCount": "integer (int32)",
  "ErrorDetails": "string"
}

Compare and match faces

POST /image/face/compare-and-match


Find the faces in an input image, and compare against a reference image to determine if there is a match against the face in the reference image. The reference image (second parameter) should contain exactly one face.



inputImage: file
in formData

Image file to perform the operation on; this image can contain one or more faces which will be matched against face provided in the second image. Common file formats such as PNG, JPEG are supported.

matchFace: file
in formData

Image of a single face to compare and match against.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "Faces": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "RightX": "integer (int32)",
      "BottomY": "integer (int32)",
      "HighConfidenceMatch": "boolean",
      "MatchScore": "number (double)"
    }
  ],
  "FaceCount": "integer (int32)",
  "ErrorDetails": "string"
}

Crop image to face with square crop

POST /image/face/crop/first


Crop an image to the face (rectangular crop). If there is more than one face present, choose the first one.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Crop image to face with round crop

POST /image/face/crop/first/round


Crop an image to the face (circular/round crop). If there is more than one face present, choose the first one.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Detect the age of people in an image

POST /image/face/detect-age


Identify the age, position, and size of human faces in an image, along with a recognition confidence level. People in the image do NOT need to be facing the camera; they can be facing away, edge-on, etc.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:

OK

Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "PeopleWithAge": [
    {
      "FaceLocation": {
        "LeftX": "integer (int32)",
        "TopY": "integer (int32)",
        "RightX": "integer (int32)",
        "BottomY": "integer (int32)"
      },
      "AgeClassificationConfidence": "number (double)",
      "AgeClass": "string",
      "Age": "number (double)"
    }
  ],
  "PeopleIdentified": "integer (int32)"
}

Detect the gender of people in an image

POST /image/face/detect-gender


Identify the gender, position, and size of human faces in an image, along with a recognition confidence level. People in the image should be facing the camera.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "PersonWithGender": [
    {
      "FaceLocation": {
        "LeftX": "integer (int32)",
        "TopY": "integer (int32)",
        "RightX": "integer (int32)",
        "BottomY": "integer (int32)"
      },
      "GenderClassificationConfidence": "number (double)",
      "GenderClass": "string"
    }
  ],
  "PeopleIdentified": "integer (int32)"
}

Filter

Perform a guassian blur on the input image

POST /image/filter/blur/guassian/{radius}/{sigma}


Perform a gaussian blur on the input image



radius: integer (int32)
in path

Radius in pixels of the blur operation; a larger radius will produce a greater blur effect

sigma: integer (int32)
in path

Sigma, or variance, of the gaussian blur operation

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Perform a motion blur on the input image

POST /image/filter/blur/motion/{radius}/{sigma}/{angle}


Perform a motion blur on the input image at a specific angle



radius: integer (int32)
in path

Radius in pixels of the blur operation; a larger radius will produce a greater blur effect

sigma: integer (int32)
in path

Sigma, or variance, of the motion blur operation

angle: integer (int32)
in path

Angle of the motion blur in degrees

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Detect and highlight edges in an image

POST /image/filter/edge-detect/{radius}


Perform an edge detection operation on the input image



radius: integer (int32)
in path

Radius in pixels of the edge detection operation; a larger radius will produce a greater effect

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Emboss an image

POST /image/filter/emboss/{radius}/{sigma}


Perform an emboss operation on the input image



radius: integer (int32)
in path

Radius in pixels of the emboss operation; a larger radius will produce a greater effect

sigma: integer (int32)
in path

Sigma, or variance, of the emboss operation

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Convert image to black-and-white grayscale

POST /image/filter/black-and-white


Remove color from the image by converting to a grayscale, black-and-white image



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Despeckle to remove point noise from the image

POST /image/filter/despeckle


Remove point noise / despeckle the input image



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Swirl distort the image

POST /image/filter/swirl


Swirl distort the image by the specified number of degrees



degrees: integer (int32)
in query

Degrees of swirl

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Posterize the image by reducing distinct colors

POST /image/filter/posterize


Reduce the unique number of colors in the image to the specified level



levels: integer (int32)
in query

Number of unique colors to retain in the output image

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Info

Returns the image metadata including EXIF and resolution

POST /image/get-info/metadata


Returns the metadata information on the image, including file type, EXIF (if available), and resolution.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "IsValidImage": "boolean",
  "FileFormat": "string",
  "Width": "integer (int32)",
  "Height": "integer (int32)",
  "BitDepth": "integer (int32)",
  "HasTransparency": "boolean",
  "ColorSpace": "string",
  "ExifProfileName": "string",
  "ExifValues": [
    {
      "Tag": "string",
      "DataType": "string",
      "DataValue": "string"
    }
  ]
}

Returns the dominant colors of the image

POST /image/get-info/dominant-color


Uses advanced image processing to extract the top 5 dominant colors in the image, returned in the order of dominance with the most-dominant color first. These are the primary perceptual colors used in the image as perceived by a viewer.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "DominantColors": [
    {
      "R": "integer (int32)",
      "G": "integer (int32)",
      "B": "integer (int32)"
    }
  ]
}

Nsfw

Not safe for work NSFW racy content classification

POST /image/nsfw/classify


Classify an image into Not Safe For Work (NSFW)/Porn/Racy content and Safe Content.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "Score": "number (double)",
  "ClassificationOutcome": "string"
}

Recognize

Describe an image in natural language

POST /image/recognize/describe


Generate an English language text description of the image as a sentence.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "Highconfidence": "boolean",
  "BestOutcome": {
    "ConfidenceScore": "number (double)",
    "Description": "string"
  },
  "RunnerUpOutcome": {
    "ConfidenceScore": "number (double)",
    "Description": "string"
  }
}

Find the location of a symbol in an image

POST /image/recognize/find/symbol


Determine if an image contains a symbol, and if so, the location of that symbol in the image.



inputImage: file
in formData

Image file to search through for the target image.

targetImage: file
in formData

Image to find in the input image.

Code Example:

OK

Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "MatchScore": "number (double)",
  "XLeft": "integer (int32)",
  "YTop": "integer (int32)",
  "Width": "integer (int32)",
  "Height": "integer (int32)"
}

Detect objects including types and locations in an image

POST /image/recognize/detect-objects


Identify the position, size and description of objects in an image, along with a recognition confidence level. Detects both human people and objects in an image.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "Objects": [
    {
      "ObjectClassName": "string",
      "Height": "integer (int32)",
      "Width": "integer (int32)",
      "Score": "number (double)",
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "ObjectCount": "integer (int32)"
}

Detect people including locations in an image

POST /image/recognize/detect-people


Identify the position, and size of human people in an image, along with a recognition confidence level. People in the image do NOT need to be facing the camera; they can be facing away, edge-on, etc.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "Objects": [
    {
      "ObjectClassName": "string",
      "Height": "integer (int32)",
      "Width": "integer (int32)",
      "Score": "number (double)",
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "ObjectCount": "integer (int32)"
}

Detect vehicle license plates in an image

POST /image/recognize/detect-vehicle-license-plates


Identify the position, and size, and content of vehicle license plates in an image. License plates should be within 15-20 degrees on-axis to the camera. Supported image formats are JPG, PNG and BMP.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "DetectedLicensePlates": [
    {
      "LicensePlateText_BestMatch": "string",
      "LicensePlateText_RunnerUp": "string",
      "LocationX": "integer (int32)",
      "LocationY": "integer (int32)",
      "Width": "integer (int32)",
      "Height": "integer (int32)",
      "LicensePlateRecognitionConfidenceLevel": "number (double)"
    }
  ],
  "DetectedLicensePlateCount": "integer (int32)"
}

Detect and unskew a photo of a document

POST /image/recognize/detect-document/unskew


Detect and unskew a photo of a document (e.g. taken on a cell phone) into a perfectly square image. Great for document scanning applications; once unskewed, this image is perfect for converting to PDF using the Convert API or optical character recognition using the OCR API.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

PostProcessingEffect: string
in header

Optional, post-processing effects to apply to the email, default is None. Possible values are None and BlackAndWhite (force the image into a black and white view to aid in OCR operations).

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
"string (byte)"

Detect large text in a photo

POST /image/recognize/detect-text/large


Identify the position, and size of large text within a photograph. Identify the location of large text in a photo - such as signs, titles, etc. and other forms of large, low-density text. Not suitable for high-density text (e.g. scans of documents, receipts, etc.) for OCR purposes - for OCR, please see our Deep Learning OCR APIs.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "TextItems": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "Width": "integer (int32)",
      "Height": "integer (int32)"
    }
  ],
  "TextItemsCount": "integer (int32)"
}

Detect fine text in a photo of a document

POST /image/recognize/detect-text/fine


Identify the position, and size of small/fine text within a photograph of a document. Identify the location of small text in a photo - such as words and other forms of high density text. Can be used on a scan of a document or a photograph (e.g. smartphone camera) of a document, page or receipt. For OCR purposes - please see our Deep Learning OCR APIs.



imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
Response Content-Types: application/json, text/json, application/xml, text/xml
Response Example (200 OK)
{
  "Successful": "boolean",
  "TextItems": [
    {
      "TopLeftX": "integer (int32)",
      "TopLeftY": "integer (int32)",
      "TopRightX": "integer (int32)",
      "TopRightY": "integer (int32)",
      "BottomLeftX": "integer (int32)",
      "BottomLeftY": "integer (int32)",
      "BottomRightX": "integer (int32)",
      "BottomRightY": "integer (int32)",
      "Width": "integer (int32)",
      "Height": "integer (int32)",
      "Angle": "number (double)"
    }
  ],
  "TextItemsCount": "integer (int32)"
}

Resize

Resize an image

POST /image/resize/target/{width}/{height}


Resize an image to a specific width and specific height. Resize is EXIF-aware.



width: integer (int32)
in path

Width of the output image - final image will be exactly this width

height: integer (int32)
in path

Height of the output image - final image will be exactly this height

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

Resize an image while preserving aspect ratio

POST /image/resize/preserveAspectRatio/{maxWidth}/{maxHeight}


Resize an image to a maximum width and maximum height, while preserving the image's original aspect ratio. Resize is EXIF-aware.



maxWidth: integer (int32)
in path

Maximum width of the output image - final image will be as large as possible while less than or equial to this width

maxHeight: integer (int32)
in path

Maximum height of the output image - final image will be as large as possible while less than or equial to this height

imageFile: file
in formData

Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.

Code Example:
200 OK

OK

type
string (byte)
Response Content-Types: application/octet-stream
Response Example (200 OK)
"string (byte)"

TextGeneration

Create an image of handwriting in PNG format

POST /image/text/create/handwriting/png


Uses Deep Learning to generate realistic handwriting and returns the result as a PNG image



Draw text parameters

Code Example:
Request Content-Types: application/json, text/json, application/xml, text/xml, application/x-www-form-urlencoded
Request Example
{
  "TextInput": "string",
  "TargetWidth": "integer (int32)",
  "StrokeWidth": "integer (int32)",
  "Color": "string"
}
200 OK

OK

type
object
Response Content-Types: application/octet-stream
Response Example (200 OK)
"object"

Schema Definitions

DrawTextRequest: object

Request to draw one or more pieces of text onto an image

BaseImageBytes: string (byte)

Image to draw text on, in bytes. You can also use the BaseImageUrl instead to supply image input as a URL

BaseImageUrl: string

Image to draw text on, as an HTTP or HTTPS fully-qualified URL

TextToDraw: DrawTextInstance

One or more pieces of text to draw onto the image

DrawTextInstance
Example
{
  "BaseImageBytes": "string (byte)",
  "BaseImageUrl": "string",
  "TextToDraw": [
    {
      "Text": "string",
      "FontFamilyName": "string",
      "FontSize": "number (double)",
      "Color": "string",
      "X": "number (double)",
      "Y": "number (double)",
      "Width": "number (double)",
      "Height": "number (double)"
    }
  ]
}

DrawTextInstance: object

Text instance to draw on an image

Text: string

Text string to draw

FontFamilyName: string

Font Family to use. Leave blank to default to "Arial". Supported fonts including Arial, Calibri, Cambria, Candara, Consolas, Constantia, Corbel, Courier New, Courier Regular, Georgia, Impact Regular, Lucida, Modern Regular, Tahoma, Times New Roman, Verdana

FontSize: number (double)

Font size to use.

Color: string

Color to use - can be a hex value (with #) or HTML common color name

X: number (double)

Pixel location of the left edge of the text location

Y: number (double)

Pixel location of the top edge of the text location

Width: number (double)

Width in pixels of the text box to draw the text in; text will wrap inside this box

Height: number (double)

Height in pixels of the text box to draw the text in; text will wrap inside this box

Example
{
  "Text": "string",
  "FontFamilyName": "string",
  "FontSize": "number (double)",
  "Color": "string",
  "X": "number (double)",
  "Y": "number (double)",
  "Width": "number (double)",
  "Height": "number (double)"
}

DrawPolygonRequest: object

Request to draw one or more polygons on a base image

BaseImageBytes: string (byte)

Image to draw polygons on, in bytes. You can also use the BaseImageUrl instead to supply image input as a URL

BaseImageUrl: string

Image to draw polygons on, as an HTTP or HTTPS fully-qualified URL

PolygonsToDraw: DrawPolygonInstance

Polygons to draw on the image. Polygons are drawn in index order.

DrawPolygonInstance
Example
{
  "BaseImageBytes": "string (byte)",
  "BaseImageUrl": "string",
  "PolygonsToDraw": [
    {
      "BorderColor": "string",
      "BorderWidth": "number (double)",
      "FillColor": "string",
      "Points": [
        {
          "X": "number (double)",
          "Y": "number (double)"
        }
      ]
    }
  ]
}

DrawPolygonInstance: object

Polygon instance to draw on an image

BorderColor: string

Border Color to use - can be a hex value (with #) or HTML common color name. Transparent colors are supported.

BorderWidth: number (double)

Width in pixels of the border. Pass in 0 to draw a polygon with no border

FillColor: string

Fill Color to use - can be a hex value (with #) or HTML common color name. Transparent colors are supported. Leave blank to not fill the polygon.

Points: PolygonPoint

Points (vertices) which comprise the polygon; valid polygons must have at least 3 points

PolygonPoint
Example
{
  "BorderColor": "string",
  "BorderWidth": "number (double)",
  "FillColor": "string",
  "Points": [
    {
      "X": "number (double)",
      "Y": "number (double)"
    }
  ]
}

PolygonPoint: object

One point in a polygon

X: number (double)

X location in pixels of this point in the polygon

Y: number (double)

Y location in pixels of this point in the polygon

Example
{
  "X": "number (double)",
  "Y": "number (double)"
}

DrawRectangleRequest: object

Request to draw one or more rectangles on a base image

BaseImageBytes: string (byte)

Image to draw rectangles on, in bytes. You can also use the BaseImageUrl instead to supply image input as a URL

BaseImageUrl: string

Image to draw rectangles on, as an HTTP or HTTPS fully-qualified URL

RectanglesToDraw: DrawRectangleInstance

Rectangles to draw on the image. Rectangles are drawn in index order.

DrawRectangleInstance
Example
{
  "BaseImageBytes": "string (byte)",
  "BaseImageUrl": "string",
  "RectanglesToDraw": [
    {
      "BorderColor": "string",
      "BorderWidth": "number (double)",
      "FillColor": "string",
      "X": "number (double)",
      "Y": "number (double)",
      "Width": "number (double)",
      "Height": "number (double)"
    }
  ]
}

DrawRectangleInstance: object

Rectangle instance to draw on an image

BorderColor: string

Border Color to use - can be a hex value (with #) or HTML common color name. Transparent colors are supported.

BorderWidth: number (double)

Width in pixels of the border. Pass in 0 to draw a rectangle with no border

FillColor: string

Fill Color to use - can be a hex value (with #) or HTML common color name. Transparent colors are supported. Leave blank to not fill the rectangle.

X: number (double)

Pixel location of the left edge of the rectangle location

Y: number (double)

Pixel location of the top edge of the rectangle location

Width: number (double)

Width in pixels of the rectangle

Height: number (double)

Height in pixels of the rectangle

Example
{
  "BorderColor": "string",
  "BorderWidth": "number (double)",
  "FillColor": "string",
  "X": "number (double)",
  "Y": "number (double)",
  "Width": "number (double)",
  "Height": "number (double)"
}

FaceLocateResponse: object

Results of locating faces in an image

Successful: boolean

True if the operation was successful, false otherwise

Faces: Face

Array of faces found in the image

Face
FaceCount: integer (int32)

Number of faces found in the image

ErrorDetails: string

Details of any errors that occurred

Example
{
  "Successful": "boolean",
  "Faces": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "RightX": "integer (int32)",
      "BottomY": "integer (int32)"
    }
  ],
  "FaceCount": "integer (int32)",
  "ErrorDetails": "string"
}

Face: object

Location of one face in an image

LeftX: integer (int32)

X coordinate of the left side of the face

TopY: integer (int32)

Y coordinate of the top side of the face

RightX: integer (int32)

X coordinate of the right side of the face

BottomY: integer (int32)

Y coordinate of the bottom side of the face

Example
{
  "LeftX": "integer (int32)",
  "TopY": "integer (int32)",
  "RightX": "integer (int32)",
  "BottomY": "integer (int32)"
}

FaceLocateWithLandmarksResponse: object

Results of locating faces in an image

Successful: boolean

True if the operation was successful, false otherwise

Faces: FaceWithLandmarks

Array of faces found in the image

FaceWithLandmarks
FaceCount: integer (int32)

Number of faces found in the image

ErrorDetails: string

Details of any errors that occurred

Example
{
  "Successful": "boolean",
  "Faces": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "RightX": "integer (int32)",
      "BottomY": "integer (int32)",
      "LeftEyebrow": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "RightEyebrow": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "LeftEye": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "RightEye": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "BottomAndSidesOfFace": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "NoseBridge": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "NoseBottom": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "LipsInnerOutline": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ],
      "LipsOuterOutline": [
        {
          "X": "integer (int32)",
          "Y": "integer (int32)"
        }
      ]
    }
  ],
  "FaceCount": "integer (int32)",
  "ErrorDetails": "string"
}

FaceWithLandmarks: object

Location of one face in an image

LeftX: integer (int32)

X coordinate of the left side of the face

TopY: integer (int32)

Y coordinate of the top side of the face

RightX: integer (int32)

X coordinate of the right side of the face

BottomY: integer (int32)

Y coordinate of the bottom side of the face

LeftEyebrow: FacePoint

Point locations of the left eyebrow (the eyebrow cloesest to the left side of the picture)

FacePoint
RightEyebrow: FacePoint

Point locations of the right eyebrow (the eyebrow cloesest to the right side of the picture)

FacePoint
LeftEye: FacePoint

Point locations of the left eye (the eye closest to the left side of the picture)

FacePoint
RightEye: FacePoint

Point locations of the right eye (the eye closest to the right side of the picture)

FacePoint
BottomAndSidesOfFace: FacePoint

Point locations of the bottom and sides of the face (cheeks and chin)

FacePoint
NoseBridge: FacePoint

Point locations of the nose bridge (the vertical portion of the nose)

FacePoint
NoseBottom: FacePoint

Point locations of the bottom (nostrils) of the nose

FacePoint
LipsInnerOutline: FacePoint

Point locations of the inner outline of the lips

FacePoint
LipsOuterOutline: FacePoint

Point locations of the outer outline of the lips

FacePoint
Example
{
  "LeftX": "integer (int32)",
  "TopY": "integer (int32)",
  "RightX": "integer (int32)",
  "BottomY": "integer (int32)",
  "LeftEyebrow": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "RightEyebrow": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "LeftEye": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "RightEye": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "BottomAndSidesOfFace": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "NoseBridge": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "NoseBottom": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "LipsInnerOutline": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "LipsOuterOutline": [
    {
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ]
}

FacePoint: object

Point location within a face

X: integer (int32)

X location, where 0 is the left-most pixel

Y: integer (int32)

Y location, where 0 is the top-most pixel

Example
{
  "X": "integer (int32)",
  "Y": "integer (int32)"
}

FaceCompareResponse: object

Results of comparing/matching faces in an image

Successful: boolean

True if the operation was successful, false otherwise

Faces: FaceMatch

Array of faces found in the input image

FaceMatch
FaceCount: integer (int32)

Number of faces found in the image

ErrorDetails: string

Details of any errors that occurred

Example
{
  "Successful": "boolean",
  "Faces": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "RightX": "integer (int32)",
      "BottomY": "integer (int32)",
      "HighConfidenceMatch": "boolean",
      "MatchScore": "number (double)"
    }
  ],
  "FaceCount": "integer (int32)",
  "ErrorDetails": "string"
}

FaceMatch: object

Location of one face in an image, along with match results

LeftX: integer (int32)

X coordinate of the left side of the face

TopY: integer (int32)

Y coordinate of the top side of the face

RightX: integer (int32)

X coordinate of the right side of the face

BottomY: integer (int32)

Y coordinate of the bottom side of the face

HighConfidenceMatch: boolean

True if there is a high confidence match, false otherwise

MatchScore: number (double)

Match score from 0.0 to 1.0 with higher scores indicating a greater match; scores above 0.7 indicate a match

Example
{
  "LeftX": "integer (int32)",
  "TopY": "integer (int32)",
  "RightX": "integer (int32)",
  "BottomY": "integer (int32)",
  "HighConfidenceMatch": "boolean",
  "MatchScore": "number (double)"
}

AgeDetectionResult: object

Result from classifying the Age of people in an image

Successful: boolean

True if the operation was successful, false otherwise

PeopleWithAge: PersonWithAge

People in the image annotated with age information

PersonWithAge
PeopleIdentified: integer (int32)

Number of people identified in the image with an age

Example
{
  "Successful": "boolean",
  "PeopleWithAge": [
    {
      "FaceLocation": {
        "LeftX": "integer (int32)",
        "TopY": "integer (int32)",
        "RightX": "integer (int32)",
        "BottomY": "integer (int32)"
      },
      "AgeClassificationConfidence": "number (double)",
      "AgeClass": "string",
      "Age": "number (double)"
    }
  ],
  "PeopleIdentified": "integer (int32)"
}

PersonWithAge: object

A person identified in an image age classification operation

FaceLocation: Face

Location and other information about the person's face corresponding to this age classification

AgeClassificationConfidence: number (double)

Confidence level of age classification; possible values are between 0.0 and 1.0; higher is better, with values > 0.50 being high confidence results

AgeClass: string

The person's age range classification result in years; possible values are "0-2", "4-6", "8-13", "15-20", "25-32", "38-43", "48-53", "60+"

Age: number (double)
Example
{
  "FaceLocation": {
    "LeftX": "integer (int32)",
    "TopY": "integer (int32)",
    "RightX": "integer (int32)",
    "BottomY": "integer (int32)"
  },
  "AgeClassificationConfidence": "number (double)",
  "AgeClass": "string",
  "Age": "number (double)"
}

GenderDetectionResult: object

Result from classifying the Gender of people in an image

Successful: boolean

True if the operation was successful, false otherwise

PersonWithGender: PersonWithGender

People in the image annotated with gender information

PersonWithGender
PeopleIdentified: integer (int32)

Number of people identified in the image with a gender

Example
{
  "Successful": "boolean",
  "PersonWithGender": [
    {
      "FaceLocation": {
        "LeftX": "integer (int32)",
        "TopY": "integer (int32)",
        "RightX": "integer (int32)",
        "BottomY": "integer (int32)"
      },
      "GenderClassificationConfidence": "number (double)",
      "GenderClass": "string"
    }
  ],
  "PeopleIdentified": "integer (int32)"
}

PersonWithGender: object

A person identified in an image gender classification operation

FaceLocation: Face

Location and other information about the person's face corresponding to this age classification

GenderClassificationConfidence: number (double)

Confidence level of gender classification; possible values are between 0.0 and 1.0; higher is better, with values > 0.50 being high confidence results

GenderClass: string

The person's identified gender; possible values are "Male", "Female" and "Unknown"

Example
{
  "FaceLocation": {
    "LeftX": "integer (int32)",
    "TopY": "integer (int32)",
    "RightX": "integer (int32)",
    "BottomY": "integer (int32)"
  },
  "GenderClassificationConfidence": "number (double)",
  "GenderClass": "string"
}

ImageMetadata: object

Metadata from an image

Successful: boolean

True if the operation was successful, false otherwise

IsValidImage: boolean

True if the input image is a valid image file, false otherwise

FileFormat: string

File format of the image

Width: integer (int32)

Width of the image in pixels

Height: integer (int32)

Height of the image in pixels

BitDepth: integer (int32)

Bits per pixel

HasTransparency: boolean

True if the image has transaprency in the form of an alpha channel, false otherwise

ColorSpace: string

Color space of the image

ExifProfileName: string

Name of the EXIF profile used

ExifValues: ImageMetadataExifValue

EXIF tags and values embedded in the image

ImageMetadataExifValue
Example
{
  "Successful": "boolean",
  "IsValidImage": "boolean",
  "FileFormat": "string",
  "Width": "integer (int32)",
  "Height": "integer (int32)",
  "BitDepth": "integer (int32)",
  "HasTransparency": "boolean",
  "ColorSpace": "string",
  "ExifProfileName": "string",
  "ExifValues": [
    {
      "Tag": "string",
      "DataType": "string",
      "DataValue": "string"
    }
  ]
}

ImageMetadataExifValue: object

EXIF tag and value

Tag: string

Tag name for the EXIF value

DataType: string

Date type of the EXIF value

DataValue: string

Value, formatted as a string of the EXIF value

Example
{
  "Tag": "string",
  "DataType": "string",
  "DataValue": "string"
}

DominantColorResult: object

Result of performing a get dominant color operation

Successful: boolean

True if the operation was successful, false otherwise

DominantColors: ColorResult

Dominant colors in the image, in order where most dominant color is in the first index position (0), the second most-dominant color is in index position 1 and so on

ColorResult
Example
{
  "Successful": "boolean",
  "DominantColors": [
    {
      "R": "integer (int32)",
      "G": "integer (int32)",
      "B": "integer (int32)"
    }
  ]
}

ColorResult: object

Individual color

R: integer (int32)

Red (R) channel pixel value of this color

G: integer (int32)

Green (G) channel pixel value of this color

B: integer (int32)

Blue (B) channel pixel value of this color

Example
{
  "R": "integer (int32)",
  "G": "integer (int32)",
  "B": "integer (int32)"
}

NsfwResult: object

Result of an NSFW classification

Successful: boolean

True if the classification was successfully run, false otherwise

Score: number (double)

Score between 0.0 and 1.0. Scores of 0.0-0.2 represent high probability safe content, while scores 0.8-1.0 represent high probability unsafe content. Content between 0.2 and 0.8 is of increasing raciness.

ClassificationOutcome: string

Classification result into four categories: SafeContent_HighProbability, UnsafeContent_HighProbability, RacyContent, SafeContent_ModerateProbability

Example
{
  "Successful": "boolean",
  "Score": "number (double)",
  "ClassificationOutcome": "string"
}

ImageDescriptionResponse: object

Result of recognizing an image

Successful: boolean

Was the image processed successfully?

Highconfidence: boolean

Is the resulting best outcome recognition a high confidence outcome?

BestOutcome: RecognitionOutcome

The best Machine Learning outcome

RunnerUpOutcome: RecognitionOutcome

Best backup ("runner up") Machine Learning outcome

Example
{
  "Successful": "boolean",
  "Highconfidence": "boolean",
  "BestOutcome": {
    "ConfidenceScore": "number (double)",
    "Description": "string"
  },
  "RunnerUpOutcome": {
    "ConfidenceScore": "number (double)",
    "Description": "string"
  }
}

RecognitionOutcome: object

Specific recognition outcome

ConfidenceScore: number (double)

Scores closer to 1 are better than scores closer to 0

Description: string

English language description of the image

Example
{
  "ConfidenceScore": "number (double)",
  "Description": "string"
}

FindSymbolResult: object

Result of a find symbol operation on an input image

Successful: boolean

True if successful, false otherwise

MatchScore: number (double)

Score between 0.0 and 1.0 that measures how closely the symbol matched; scores above 0.2 are good

XLeft: integer (int32)

X location of the left edge of the found location in pixels

YTop: integer (int32)

Y location of the top edge of the found location in pixels

Width: integer (int32)

Width of the found location in pixels

Height: integer (int32)

Height of the found location in pixels

Example
{
  "Successful": "boolean",
  "MatchScore": "number (double)",
  "XLeft": "integer (int32)",
  "YTop": "integer (int32)",
  "Width": "integer (int32)",
  "Height": "integer (int32)"
}

ObjectDetectionResult: object

Result of detecting objects in an image

Successful: boolean

Was the image processed successfully?

Objects: DetectedObject

Array of objects detected in the scene

DetectedObject
ObjectCount: integer (int32)

Number of objects detected in the scene

Example
{
  "Successful": "boolean",
  "Objects": [
    {
      "ObjectClassName": "string",
      "Height": "integer (int32)",
      "Width": "integer (int32)",
      "Score": "number (double)",
      "X": "integer (int32)",
      "Y": "integer (int32)"
    }
  ],
  "ObjectCount": "integer (int32)"
}

DetectedObject: object

Single object instance, and associated details, detected in an image

ObjectClassName: string

Class of the object. Example values are "person", "car", "dining table", etc.

Height: integer (int32)

Height, in pixels, of the object

Width: integer (int32)

Width, in pixels, of the object

Score: number (double)

Confidence score of detected object; possible values are between 0.0 and 1.0; values closer to 1.0 are higher confidence

X: integer (int32)

X location, in pixels, of the left side location of the object, with the right side being X + Width

Y: integer (int32)

Y location, in pixels, of the top side location of the object, with the bottom side being Y + Height

Example
{
  "ObjectClassName": "string",
  "Height": "integer (int32)",
  "Width": "integer (int32)",
  "Score": "number (double)",
  "X": "integer (int32)",
  "Y": "integer (int32)"
}

VehicleLicensePlateDetectionResult: object

Result of detecting vehicle license plates in an image

Successful: boolean

Was the image processed successfully?

DetectedLicensePlates: DetectedLicensePlate

License plates found in the image

DetectedLicensePlate
DetectedLicensePlateCount: integer (int32)

The number of license plates detected in the image

Example
{
  "Successful": "boolean",
  "DetectedLicensePlates": [
    {
      "LicensePlateText_BestMatch": "string",
      "LicensePlateText_RunnerUp": "string",
      "LocationX": "integer (int32)",
      "LocationY": "integer (int32)",
      "Width": "integer (int32)",
      "Height": "integer (int32)",
      "LicensePlateRecognitionConfidenceLevel": "number (double)"
    }
  ],
  "DetectedLicensePlateCount": "integer (int32)"
}

DetectedLicensePlate: object

License plate found in the image

LicensePlateText_BestMatch: string

Text from the license plate, highest-confidence result

LicensePlateText_RunnerUp: string

Alternate text from the license plate, based on second-highest-confidence result

LocationX: integer (int32)

X location of the left edge of the license plate, starting from the left edge of the photo (X = 0)

LocationY: integer (int32)

Y location of the top edge of the license plate, starting from the top edge of the photo (Y = 0)

Width: integer (int32)

Width of the license plate's location in pixels

Height: integer (int32)

Height of the license plate's location in pixels

LicensePlateRecognitionConfidenceLevel: number (double)

Confidence score on a range of 0.0 - 1.0 of the accuracy of the detected license plate, with higher scores being better; values about 0.75 are high confidence

Example
{
  "LicensePlateText_BestMatch": "string",
  "LicensePlateText_RunnerUp": "string",
  "LocationX": "integer (int32)",
  "LocationY": "integer (int32)",
  "Width": "integer (int32)",
  "Height": "integer (int32)",
  "LicensePlateRecognitionConfidenceLevel": "number (double)"
}

TextDetectionResult: object

Result of an operation to detect text in a photo

Successful: boolean

True if the operation was successful, false otherwise

TextItems: TextItem

Text items found in the input image

TextItem
TextItemsCount: integer (int32)

Count of text items found in the input image

Example
{
  "Successful": "boolean",
  "TextItems": [
    {
      "LeftX": "integer (int32)",
      "TopY": "integer (int32)",
      "Width": "integer (int32)",
      "Height": "integer (int32)"
    }
  ],
  "TextItemsCount": "integer (int32)"
}

TextItem: object

Individual instance of text occuring in an image; one piece of text

LeftX: integer (int32)

Left X coordinate of the text location; 0 represents the left edge of the input image

TopY: integer (int32)

Top Y coordinate of the text location; 0 represents the top edge of the input image

Width: integer (int32)

Width in pixels of the text item

Height: integer (int32)

Height in pixels of the text item

Example
{
  "LeftX": "integer (int32)",
  "TopY": "integer (int32)",
  "Width": "integer (int32)",
  "Height": "integer (int32)"
}

FineTextDetectionResult: object

Result of an operation to detect text in a photo

Successful: boolean

True if the operation was successful, false otherwise

TextItems: FineTextItem

Text items found in the input image

FineTextItem
TextItemsCount: integer (int32)

Count of text items found in the input image

Example
{
  "Successful": "boolean",
  "TextItems": [
    {
      "TopLeftX": "integer (int32)",
      "TopLeftY": "integer (int32)",
      "TopRightX": "integer (int32)",
      "TopRightY": "integer (int32)",
      "BottomLeftX": "integer (int32)",
      "BottomLeftY": "integer (int32)",
      "BottomRightX": "integer (int32)",
      "BottomRightY": "integer (int32)",
      "Width": "integer (int32)",
      "Height": "integer (int32)",
      "Angle": "number (double)"
    }
  ],
  "TextItemsCount": "integer (int32)"
}

FineTextItem: object

Individual instance of text occuring in an image; one piece of text

TopLeftX: integer (int32)

X coordinate of the top/left text location; 0 represents the left edge of the input image

TopLeftY: integer (int32)

Y coordinate of the top/left text location; 0 represents the top edge of the input image

TopRightX: integer (int32)

X coordinate of the top/right text location; 0 represents the left edge of the input image

TopRightY: integer (int32)

Y coordinate of the top/right text location; 0 represents the top edge of the input image

BottomLeftX: integer (int32)

X coordinate of the bottom/left text location; 0 represents the left edge of the input image

BottomLeftY: integer (int32)

Y coordinate of the bottom/left text location; 0 represents the top edge of the input image

BottomRightX: integer (int32)

X coordinate of the bottom/right text location; 0 represents the left edge of the input image

BottomRightY: integer (int32)

Y coordinate of the bottom/right text location; 0 represents the top edge of the input image

Width: integer (int32)

Width in pixels of the text

Height: integer (int32)

Height in pixels of the text

Angle: number (double)

Rotation Angle in radians of the text

Example
{
  "TopLeftX": "integer (int32)",
  "TopLeftY": "integer (int32)",
  "TopRightX": "integer (int32)",
  "TopRightY": "integer (int32)",
  "BottomLeftX": "integer (int32)",
  "BottomLeftY": "integer (int32)",
  "BottomRightX": "integer (int32)",
  "BottomRightY": "integer (int32)",
  "Width": "integer (int32)",
  "Height": "integer (int32)",
  "Angle": "number (double)"
}

CreateHandwritingRequest: object

Request to create a PNG of handwriting

TextInput: string

Text to convert to handwriting

TargetWidth: integer (int32)

Desired width in pixels of the resulting image

StrokeWidth: integer (int32)

Optinoal; Width of the text stroke in pixels; default is 2

Color: string

HTML hexadecimal color, or HTML common color name (e.g. 'black', 'red'), for the handwriting

Example
{
  "TextInput": "string",
  "TargetWidth": "integer (int32)",
  "StrokeWidth": "integer (int32)",
  "Color": "string"
}