Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/cloudmersive:cloudmersive-edit-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: v1
title: imageapi Edit API
description: Image Recognition and Processing APIs let you use Artificial Intelligence and Machine Learning to recognize and process images, and also perform useful image modification operations.
servers:
- url: http://localhost
tags:
- name: Edit
paths:
/image/edit/contrast/{gamma}/adaptive:
post:
tags:
- Edit
summary: Adaptively adjust the contrast of the image to be more appealing and easy to see
description: 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.
operationId: Edit_ContrastAdaptive
parameters:
- name: gamma
in: path
description: 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.
required: true
schema:
type: number
format: double
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/rotate/{degrees}/angle:
post:
tags:
- Edit
summary: Rotate an image any number of degrees
description: Rotates an image by an arbitrary number of degrees
operationId: Edit_Rotate
parameters:
- name: degrees
in: path
description: Degrees to rotate the image; values range from 0.0 to 360.0.
required: true
schema:
type: number
format: double
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/crop/rectangle/{left}/{top}/{width}/{height}:
post:
tags:
- Edit
summary: Crop an image to a rectangular area
description: Crop an image to a target rectangular area
operationId: Edit_CropRectangle
parameters:
- name: left
in: path
description: The left edge of the rectangular crop area in pixels (X).
required: true
schema:
type: integer
format: int32
- name: top
in: path
description: The top edge of the rectangular crop area in pixels (Y).
required: true
schema:
type: integer
format: int32
- name: width
in: path
description: The width of the rectangular crop area in pixels.
required: true
schema:
type: integer
format: int32
- name: height
in: path
description: The height of the rectangular crop area in pixels.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/crop/circle/{left}/{top}/{radius}:
post:
tags:
- Edit
summary: Crop an image to an circular area
description: Crop an image to a target circular area
operationId: Edit_CropCircle
parameters:
- name: left
in: path
description: The left edge of the circular crop area in pixels (X).
required: true
schema:
type: integer
format: int32
- name: top
in: path
description: The top edge of the circular crop area in pixels (Y).
required: true
schema:
type: integer
format: int32
- name: radius
in: path
description: The radius of the circular crop area in pixels.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/invert:
post:
tags:
- Edit
summary: Invert, negate the colors in the image
description: 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.
operationId: Edit_Invert
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/remove-transparency:
post:
tags:
- Edit
summary: Remove transparency from the image
description: 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.
operationId: Edit_RemoveTransparency
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/remove-exif:
post:
tags:
- Edit
summary: Remove EXIF data from the image
description: Removes any EXIF data and profiles .
operationId: Edit_RemoveExifData
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/auto-orient/remove-exif:
post:
tags:
- Edit
summary: Normalizes image rotation and removes EXIF rotation data
description: 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.
operationId: Edit_AutoOrient
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/drop-shadow/{X}/{Y}/{sigma}/{opacity}:
post:
tags:
- Edit
summary: Add a customizeable drop shadow to an image
description: Add a customizeable drop shadow to the image
operationId: Edit_DropShadow
parameters:
- name: X
in: path
description: Horizontal (X) offset of the drop shadow
required: true
schema:
type: integer
format: int32
- name: Y
in: path
description: Vertical (Y) offset of the drop shadow
required: true
schema:
type: integer
format: int32
- name: sigma
in: path
description: Sigma (blur distance) of the drop shadow
required: true
schema:
type: integer
format: int32
- name: opacity
in: path
description: Opacity of the drop shadow; 0 is 0% and 100 is 100%
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
imageFile:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
required:
- imageFile
/image/edit/composite/{location}:
post:
tags:
- Edit
summary: Composite two images together
description: 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.
operationId: Edit_CompositeBasic
parameters:
- name: location
in: path
description: '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"'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
baseImage:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
layeredImage:
type: string
description: Image to layer on top of the base image.
format: binary
required:
- baseImage
- layeredImage
/image/edit/composite/precise:
post:
tags:
- Edit
summary: Composite two images together precisely
description: 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.
operationId: Edit_CompositePrecise
parameters:
- name: top
in: header
description: Optional; Desired distance in pixels from the top of the base image to the top of the layered image.
required: false
schema:
type: integer
- name: bottom
in: header
description: Optional; Desired distance in pixels from the bottom of the base image to the bottom of the layered image.
required: false
schema:
type: integer
- name: left
in: header
description: Optional; Desired distance in pixels from the left side of the base image to the left side of the layered image.
required: false
schema:
type: integer
- name: right
in: header
description: Optional; Desired distance in pixels from the right side of the base image to the right side of the layered image.
required: false
schema:
type: integer
- name: width
in: header
description: Optional; Desired width of the layered image in pixels. Leave height empty or 0 to automatically scale the image proportionally.
required: false
schema:
type: integer
- name: height
in: header
description: Optional; Desired height of the layered image in pixels. Leave width empty or 0 to automatically scale the image proportionally.
required: false
schema:
type: integer
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
baseImage:
type: string
description: Image file to perform the operation on. Common file formats such as PNG, JPEG are supported.
format: binary
layeredImage:
type: string
description: Image to layer on top of the base image.
format: binary
required:
- baseImage
- layeredImage
/image/edit/draw/text:
post:
tags:
- Edit
summary: Draw text onto an image
description: Draw one or more pieces of text, with customized visuals, onto an image
operationId: Edit_DrawText
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DrawTextRequest'
text/json:
schema:
$ref: '#/components/schemas/DrawTextRequest'
application/xml:
schema:
$ref: '#/components/schemas/DrawTextRequest'
text/xml:
schema:
$ref: '#/components/schemas/DrawTextRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/DrawTextRequest'
description: Draw text parameters
required: true
/image/edit/draw/polygon:
post:
tags:
- Edit
summary: Draw a polygon onto an image
description: Draw one or more polygons, with customized visuals, onto an image
operationId: Edit_DrawPolygon
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DrawPolygonRequest'
text/json:
schema:
$ref: '#/components/schemas/DrawPolygonRequest'
application/xml:
schema:
$ref: '#/components/schemas/DrawPolygonRequest'
text/xml:
schema:
$ref: '#/components/schemas/DrawPolygonRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/DrawPolygonRequest'
description: Polygon drawing request parameters
required: true
/image/edit/draw/rectangle:
post:
tags:
- Edit
summary: Draw a rectangle onto an image
description: Draw one or more rectangles, with customized visuals, onto an image
operationId: Edit_DrawRectangle
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DrawRectangleRequest'
text/json:
schema:
$ref: '#/components/schemas/DrawRectangleRequest'
application/xml:
schema:
$ref: '#/components/schemas/DrawRectangleRequest'
text/xml:
schema:
$ref: '#/components/schemas/DrawRectangleRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/DrawRectangleRequest'
description: Draw rectangle parameters
required: true
components:
schemas:
PolygonPoint:
description: One point in a polygon
type: object
properties:
X:
format: double
description: X location in pixels of this point in the polygon
type: number
Y:
format: double
description: Y location in pixels of this point in the polygon
type: number
DrawPolygonRequest:
description: Request to draw one or more polygons on a base image
type: object
properties:
BaseImageBytes:
format: byte
description: Image to draw polygons on, in bytes. You can also use the BaseImageUrl instead to supply image input as a URL
type: string
BaseImageUrl:
description: Image to draw polygons on, as an HTTP or HTTPS fully-qualified URL
type: string
PolygonsToDraw:
description: Polygons to draw on the image. Polygons are drawn in index order.
type: array
items:
$ref: '#/components/schemas/DrawPolygonInstance'
DrawRectangleRequest:
description: Request to draw one or more rectangles on a base image
type: object
properties:
BaseImageBytes:
format: byte
description: Image to draw rectangles on, in bytes. You can also use the BaseImageUrl instead to supply image input as a URL
type: string
BaseImageUrl:
description: Image to draw rectangles on, as an HTTP or HTTPS fully-qualified URL
type: string
RectanglesToDraw:
description: Rectangles to draw on the image. Rectangles are drawn in index order.
type: array
items:
$ref: '#/components/schemas/DrawRectangleInstance'
DrawTextRequest:
description: Request to draw one or more pieces of text onto an image
type: object
properties:
BaseImageBytes:
format: byte
description: Image to draw text on, in bytes. You can also use the BaseImageUrl instead to supply image input as a URL
type: string
BaseImageUrl:
description: Image to draw text on, as an HTTP or HTTPS fully-qualified URL
type: string
TextToDraw:
description: One or more pieces of text to draw onto the image
type: array
items:
$ref: '#/components/schemas/DrawTextInstance'
DrawRectangleInstance:
description: Rectangle instance to draw on an image
type: object
properties:
BorderColor:
description: 'Border Color to use - can be a hex value (with #) or HTML common color name. Transparent colors are supported.'
type: string
BorderWidth:
format: double
description: Width in pixels of the border. Pass in 0 to draw a rectangle with no border
type: number
FillColor:
description: '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.'
type: string
X:
format: double
description: Pixel location of the left edge of the rectangle location
type: number
Y:
format: double
description: Pixel location of the top edge of the rectangle location
type: number
Width:
format: double
description: Width in pixels of the rectangle
type: number
Height:
format: double
description: Height in pixels of the rectangle
type: number
DrawTextInstance:
description: Text instance to draw on an image
type: object
properties:
Text:
description: Text string to draw
type: string
FontFamilyName:
description: 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
type: string
FontSize:
format: double
description: Font size to use.
type: number
Color:
description: 'Color to use - can be a hex value (with #) or HTML common color name'
type: string
X:
format: double
description: Pixel location of the left edge of the text location
type: number
Y:
format: double
description: Pixel location of the top edge of the text location
type: number
Width:
format: double
description: Width in pixels of the text box to draw the text in; text will wrap inside this box
type: number
Height:
format: double
description: Height in pixels of the text box to draw the text in; text will wrap inside this box
type: number
DrawPolygonInstance:
description: Polygon instance to draw on an image
type: object
properties:
BorderColor:
description: 'Border Color to use - can be a hex value (with #) or HTML common color name. Transparent colors are supported.'
type: string
BorderWidth:
format: double
description: Width in pixels of the border. Pass in 0 to draw a polygon with no border
type: number
FillColor:
description: '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.'
type: string
Points:
description: Points (vertices) which comprise the polygon; valid polygons must have at least 3 points
type: array
items:
$ref: '#/components/schemas/PolygonPoint'
securitySchemes:
Apikey:
type: apiKey
description: API Key Authentication
name: Apikey
in: header
x-provenance:
method: harvested
publisher: Cloudmersive
source: https://api.cloudmersive.com/image/docs/v1/swagger
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)