Документация API

URL: https://imgfactory.ru/api/v1

Токен авторизации передается в заголовке Authorization HTTP запроса.

Уникализовать изображения

Асинхронный метод. Создает задачу по уникализации и отправляет ее в очередь. В Response вам вернется id вашей задачи по которому вы сможете получить ссылку на скачивание zip-архива
POST /async/unique
Request body - multipart/form-data
images*required
array
Изображения string($binary)
Query параметры
Имя Описание
copies
int
Количество копий каждого изображения
По умолчанию: 10
names
int
Имена файлов
Возможные значения:
  • 0 - хэшированные
  • 1 - по порядку
  • 2 - исходные
По умолчанию: 0
folders
int
Расположение файлов
Возможные значения:
  • 0 - в одну папку
  • 1 - создавая подпапки
  • 2 - в каждой папке набор из всех изображений
По умолчанию: 0
rotate
json
Поворот изображения. Лучше совершать на 1-2 градуса
По умолчанию: { "enable": true, "min": 0, "max": 2 }
crop
json
Обрезка изображения. Не рекомендуется обрезать картинку больше, чем на 5-15 процентов.
Например: { "enable": true, "side": 1, "min": 1, "max": 5 }
Возможные значения side:
  • 0 - С одной случайной стороны
  • 1 - С двух случайных сторон
  • 2 - Со всех сторон
  • 3 - Случайно
По умолчанию: null
saturation
json
Насыщенность. Рекомендуется устанавливать значения больше 50 и меньше 150
По умолчанию: { "enable": true, "min": 90, "max": 110 }
brightness
json
Яркость. Рекомендуется устанавливать значения больше 80 и меньше 130
По умолчанию: { "enable": true, "min": 90, "max": 110 }
contrast
json
Контраст. Не рекомендуется устанавливать значение больше 20
По умолчанию: { "enable": true, "min": 1, "max": 15 }
flip
int
Отражение
Возможные значения:
  • 0 - без отражения
  • 1 - по горизонтали
  • 2 - по вертикали
  • 3 - и по горизонтали и по вертикали
По умолчанию: 0
exif
int
Exif данные
Возможные значения:
  • 0 - удалены
  • 1 - случайные
  • 2 - схожие
  • 3 - свои (в таком случае обязательно должен быть указан параметр )
По умолчанию: 0
self_exif_id
int
ID записи о вашем EXIF доноре (можно посмотреть тут)
По умолчанию: 0
Responses
code Content-Type: application/json
200 {"type":"success","task_id":"d4ea7250-a1ea-11ec-9001-8bb6308e00c9"}
400 {"type":"validation error","detail":{"images":["Поле images обязательно для заполнения."]}}
401 {"type":"auth error","detail":"Authorization required"}
401 {"type":"auth error","detail":"Invalid token"}
402 {"type":"payment error","detail":"API не оплачено"}
Пример curl
curl --location --request POST 'https://imgfactory.ru/api/v1/async/unique?copies=1' \
--header 'Authorization: ysEaAb4LzzBwUkIDdaGGbd6eUq9EZaecvk412q0kx3K4BBUwtEuOdZmcfBro' \
--form 'images[]=@"/folder/test.jpg"' \
--form 'images[]=@"/folder/another_test.jpg"'

Уникализовать одно изображение

Синхронный метод. В Response вам вернется Content-Type: image/jpeg, byte код уникализированного изображения
POST /sync/single/unique
Request body - multipart/form-data
image*required
string($binary)
Изображение для уникализации
Query параметры
Имя Описание
copies
int
Количество копий каждого изображения
По умолчанию: 10
names
int
Имена файлов
Возможные значения:
  • 0 - хэшированные
  • 1 - по порядку
  • 2 - исходные
По умолчанию: 0
folders
int
Расположение файлов
Возможные значения:
  • 0 - в одну папку
  • 1 - создавая подпапки
  • 2 - в каждой папке набор из всех изображений
По умолчанию: 0
rotate
json
Поворот изображения. Лучше совершать на 1-2 градуса
По умолчанию: { "enable": true, "min": 0, "max": 2 }
crop
json
Обрезка изображения. Не рекомендуется обрезать картинку больше, чем на 5-15 процентов.
Например: { "enable": true, "side": 1, "min": 1, "max": 5 }
Возможные значения side:
  • 0 - С одной случайной стороны
  • 1 - С двух случайных сторон
  • 2 - Со всех сторон
  • 3 - Случайно
По умолчанию: null
saturation
json
Насыщенность. Рекомендуется устанавливать значения больше 50 и меньше 150
По умолчанию: { "enable": true, "min": 90, "max": 110 }
brightness
json
Яркость. Рекомендуется устанавливать значения больше 80 и меньше 130
По умолчанию: { "enable": true, "min": 90, "max": 110 }
contrast
json
Контраст. Не рекомендуется устанавливать значение больше 20
По умолчанию: { "enable": true, "min": 1, "max": 15 }
flip
int
Отражение
Возможные значения:
  • 0 - без отражения
  • 1 - по горизонтали
  • 2 - по вертикали
  • 3 - и по горизонтали и по вертикали
По умолчанию: 0
exif
int
Exif данные
Возможные значения:
  • 0 - удалены
  • 1 - случайные
  • 2 - схожие
  • 3 - свои (в таком случае обязательно должен быть указан параметр )
По умолчанию: 0
self_exif_id
int
ID записи о вашем EXIF доноре (можно посмотреть тут)
По умолчанию: 0
Responses
code Content-Type: image/jpeg
200 JPG Byte code
code Content-Type: application/json
400 {"type":"validation error","detail":{"image":["Поле image обязательно для заполнения."]}}
401 {"type":"auth error","detail":"Authorization required"}
401 {"type":"auth error","detail":"Invalid token"}
402 {"type":"payment error","detail":"API не оплачено"}
Пример curl
curl --location --request POST 'https://imgfactory.ru/api/v1/sync/single/unique' \
--header 'Authorization: ysEaAb4LzzBwUkIDdaGGbd6eUq9EZaecvk412q0kx3K4BBUwtEuOdZmcfBro' \
--form 'image=@"/folder/test.jpg"'

Получить детали задачи или список задач

GET /tasks
Query параметры
Имя Описание
task_id
string
ID задачи.
Например: 41572e60-a1e5-11ec-84ce-cb7091c1043d
Responses
code Content-Type: application/json
200 {
  "type": "success",
  "detail": [{
    "id": "41572e60-a1e5-11ec-84ce-cb7091c1043d",
    "status": "DONE",
    "files": "1",
    "copies": "50",
    "percent": "100",
    "result": "https://imgfactory.ru/storage/uploads/api/41572e60-a1e5-11ec-84ce-cb7091c1043d.zip",
    "created_at": "2022-03-12 12:17:35",
    "updated_at": "2022-03-12 12:18:48"
  }]
}

Внимание! Ссылка на скачивание остается доступной в течении 24 часов
200 {
  "type": "success",
  "detail": [
    {
      "id": "467668e0-a17d-11ec-b2c3-a73bc049c5f6",
      "status": "PENDING",
      "files": "2",
      "copies": "1",
      "percent": null,
      "result": null,
      "created_at": "2022-03-11 23:53:16",
      "updated_at": "2022-03-11 23:53:16"
    },
    {
      "id": "7bab5ad0-a1e0-11ec-80a4-2d8155d1e15d",
      "status": "STARTED",
      "files": "2",
      "copies": "2",
      "percent": "20",
      "result": null,
      "created_at": "2022-03-12 11:43:26",
      "updated_at": "2022-03-12 11:43:30"
    },
    {
      "id": "d4ea7250-a1ea-11ec-9001-8bb6308e00c9",
      "status": "DONE",
      "files": "1",
      "copies": "1",
      "percent": "100",
      "result": "https://imgfactory.ru/storage/uploads/api/d4ea7250-a1ea-11ec-9001-8bb6308e00c9.zip",
      "created_at": "2022-03-12 12:57:30",
      "updated_at": "2022-03-12 12:57:33"
    }
  ]
}

Внимание! Ссылка на скачивание остается доступной в течении 24 часов
400 {"type":"search error","detail":"Task not found"}
400 {"type":"validation error","detail":{"task_id":["validation.uuid"]}}
401 {"type":"auth error","detail":"Authorization required"}
401 {"type":"auth error","detail":"Invalid token"}
402 {"type":"payment error","detail":"API не оплачено"}
Пример curl
curl --location --request GET 'https://imgfactory.ru/api/v1/tasks?task_id=41572e60-a1e5-11ec-84ce-cb7091c1043d' \
--header 'Authorization: ysEaAb4LzzBwUkIDdaGGbd6eUq9EZaecvk412q0kx3K4BBUwtEuOdZmcfBro' \