Crop Image
curl --request POST \
--url https://api.img-processing.com/v1/images/{image_id}/crop \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"x1": 100,
"y1": 100,
"x2": 300,
"y2": 300,
"name": "cropped-image"
}
'import requests
url = "https://api.img-processing.com/v1/images/{image_id}/crop"
payload = {
"x1": 100,
"y1": 100,
"x2": 300,
"y2": 300,
"name": "cropped-image"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({x1: 100, y1: 100, x2: 300, y2: 300, name: 'cropped-image'})
};
fetch('https://api.img-processing.com/v1/images/{image_id}/crop', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.img-processing.com/v1/images/{image_id}/crop",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'x1' => 100,
'y1' => 100,
'x2' => 300,
'y2' => 300,
'name' => 'cropped-image'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.img-processing.com/v1/images/{image_id}/crop"
payload := strings.NewReader("{\n \"x1\": 100,\n \"y1\": 100,\n \"x2\": 300,\n \"y2\": 300,\n \"name\": \"cropped-image\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.img-processing.com/v1/images/{image_id}/crop")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"x1\": 100,\n \"y1\": 100,\n \"x2\": 300,\n \"y2\": 300,\n \"name\": \"cropped-image\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.img-processing.com/v1/images/{image_id}/crop")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"x1\": 100,\n \"y1\": 100,\n \"x2\": 300,\n \"y2\": 300,\n \"name\": \"cropped-image\"\n}"
response = http.request(request)
puts response.read_body{
"id": "image_etm0g3x5iap4cld1qcfsjvo2",
"name": "Processed Image",
"url": "https://storage.img-processing.com/images/image_etm0g3x5iap4cld1qcfsjvo2",
"width": 460,
"height": 460,
"format": "jpeg",
"size": 282000,
"created_at": "2021-09-01T12:00:00.000Z"
}{
"type": "https://docs.img-processing.com/errors/unauthorized",
"error": "Unauthorized",
"status": 401,
"message": "API key is required."
}{
"type": "https://docs.img-processing.com/errors/forbidden",
"error": "Forbidden",
"status": 403,
"message": "You are not allowed to access this image."
}{
"type": "https://docs.img-processing.com/errors/validation-error",
"error": "Validation Error",
"status": 422,
"errors": [
"{field or param} {error message}"
]
}{
"type": "https://docs.img-processing.com/errors/too-many-requests",
"error": "Too Many Requests",
"status": 429,
"message": "Rate limit exceeded. Try again later."
}{
"type": "https://docs.img-processing.com/errors/internal-error",
"error": "Internal Error",
"status": 500,
"message": "An unexpected error occurred. Please try again later. If the problem persists, contact support."
}Transformation Endpoints
Crop Image
Crops an image to the specified dimensions
POST
/
v1
/
images
/
{image_id}
/
crop
Crop Image
curl --request POST \
--url https://api.img-processing.com/v1/images/{image_id}/crop \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"x1": 100,
"y1": 100,
"x2": 300,
"y2": 300,
"name": "cropped-image"
}
'import requests
url = "https://api.img-processing.com/v1/images/{image_id}/crop"
payload = {
"x1": 100,
"y1": 100,
"x2": 300,
"y2": 300,
"name": "cropped-image"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({x1: 100, y1: 100, x2: 300, y2: 300, name: 'cropped-image'})
};
fetch('https://api.img-processing.com/v1/images/{image_id}/crop', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.img-processing.com/v1/images/{image_id}/crop",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'x1' => 100,
'y1' => 100,
'x2' => 300,
'y2' => 300,
'name' => 'cropped-image'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.img-processing.com/v1/images/{image_id}/crop"
payload := strings.NewReader("{\n \"x1\": 100,\n \"y1\": 100,\n \"x2\": 300,\n \"y2\": 300,\n \"name\": \"cropped-image\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.img-processing.com/v1/images/{image_id}/crop")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"x1\": 100,\n \"y1\": 100,\n \"x2\": 300,\n \"y2\": 300,\n \"name\": \"cropped-image\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.img-processing.com/v1/images/{image_id}/crop")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"x1\": 100,\n \"y1\": 100,\n \"x2\": 300,\n \"y2\": 300,\n \"name\": \"cropped-image\"\n}"
response = http.request(request)
puts response.read_body{
"id": "image_etm0g3x5iap4cld1qcfsjvo2",
"name": "Processed Image",
"url": "https://storage.img-processing.com/images/image_etm0g3x5iap4cld1qcfsjvo2",
"width": 460,
"height": 460,
"format": "jpeg",
"size": 282000,
"created_at": "2021-09-01T12:00:00.000Z"
}{
"type": "https://docs.img-processing.com/errors/unauthorized",
"error": "Unauthorized",
"status": 401,
"message": "API key is required."
}{
"type": "https://docs.img-processing.com/errors/forbidden",
"error": "Forbidden",
"status": 403,
"message": "You are not allowed to access this image."
}{
"type": "https://docs.img-processing.com/errors/validation-error",
"error": "Validation Error",
"status": 422,
"errors": [
"{field or param} {error message}"
]
}{
"type": "https://docs.img-processing.com/errors/too-many-requests",
"error": "Too Many Requests",
"status": 429,
"message": "Rate limit exceeded. Try again later."
}{
"type": "https://docs.img-processing.com/errors/internal-error",
"error": "Internal Error",
"status": 500,
"message": "An unexpected error occurred. Please try again later. If the problem persists, contact support."
}Description
With this endpoint, you can crop an image by specifying the dimensions of the crop area. The crop area is defined by 2 points: the top-left corner at(x1, y1) and the bottom-right corner at (x2, y2).

Example of a crop area
Path Parameters
Body
application/json
Response
The API will return the Image object in the response body.
The Image object represents an image processed using the IMG Processing API. The object contains information about the image, such as its URL, size, and format. The Image object is returned in the response body of all image processing requests.

