API Docs
Полная документация по API GabaPaint для генерации изображений
Основной запрос
Endpoint
POST
https://gaba-project.com/gabapaint/generate
Основные варианты ответа
200
Успех! Ответ в формате .png
401
Неверно указанный или недейстивтельный токен
403
Отказано в доступе. IP отсутствует whiteliste или действие токена остановлено
422
Невозможно открыть URL отпрвленного изображения в поле image
500
Невозможно сгенерировать изображение в связи с неверно составленным запросом
Аутентификация
Доступ к сервису выдается в ручную. Для получения токена необходимо связаться с администрацией проекта
Связаться с администрациейПример стандартного запроса
Python
import requests
url = "https://gaba-project.com/gabapaint/generate"
headers = {
"Content-Type": "application/json",
"Accept": "image/png, application/pdf, */*;q=0.8",
}
payload = {
"token": "Ваш токен",
"template": {
"type": "screen",
"country": "it",
"service": "subito",
"pattern": "1"
},
"data": {
"seller_name": "John Doller",
"title": "Iphone 15 PRO 128gb",
"price": "500",
"image": "example.com"
},
}
resp = requests.post(url, json=payload, headers=headers, timeout=60)
url = "https://gaba-project.com/gabapaint/generate"
headers = {
"Content-Type": "application/json",
"Accept": "image/png, application/pdf, */*;q=0.8",
}
payload = {
"token": "Ваш токен",
"template": {
"type": "screen",
"country": "it",
"service": "subito",
"pattern": "1"
},
"data": {
"seller_name": "John Doller",
"title": "Iphone 15 PRO 128gb",
"price": "500",
"image": "example.com"
},
}
resp = requests.post(url, json=payload, headers=headers, timeout=60)
Node JS
const fetch = require('node-fetch');
const url = 'https://gaba-project.com/gabapaint/generate';
const headers = {
'Content-Type': 'application/json',
'Accept': 'image/png, application/pdf, */*;q=0.8',
};
const payload = {
'token': 'Ваш токен',
'template': {
'type': 'screen',
'country': 'it',
'service': 'subito',
'pattern': '1'
},
'data': {
'seller_name': 'John Doller',
'title': 'Iphone 15 PRO 128gb',
'price': '500',
'image': 'example.com'
}
};
fetch(url, {
method: 'POST',
headers,
body: JSON.stringify(payload)
})
const url = 'https://gaba-project.com/gabapaint/generate';
const headers = {
'Content-Type': 'application/json',
'Accept': 'image/png, application/pdf, */*;q=0.8',
};
const payload = {
'token': 'Ваш токен',
'template': {
'type': 'screen',
'country': 'it',
'service': 'subito',
'pattern': '1'
},
'data': {
'seller_name': 'John Doller',
'title': 'Iphone 15 PRO 128gb',
'price': '500',
'image': 'example.com'
}
};
fetch(url, {
method: 'POST',
headers,
body: JSON.stringify(payload)
})
PHP
<?php
$url = "https://gaba-project.com/gabapaint/generate";
$headers = [
"Content-Type: application/json",
"Accept: image/png, application/pdf, */*;q=0.8"
];
$payload = [
"token" => "Ваш токен",
"template" => [
"type" => "screen",
"country" => "it",
"service" => "subito",
"pattern" => "1"
],
"data" => [
"seller_name" => "John Doller",
"title" => "Iphone 15 PRO 128gb",
"price" => "500",
"image" => "example.com"
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
$url = "https://gaba-project.com/gabapaint/generate";
$headers = [
"Content-Type: application/json",
"Accept: image/png, application/pdf, */*;q=0.8"
];
$payload = [
"token" => "Ваш токен",
"template" => [
"type" => "screen",
"country" => "it",
"service" => "subito",
"pattern" => "1"
],
"data" => [
"seller_name" => "John Doller",
"title" => "Iphone 15 PRO 128gb",
"price" => "500",
"image" => "example.com"
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
Структура "template"
type
screen - скриншоты об оплате
screen-mail - скриншоты с запросом почты
screen-qr - скриншоты с qr кодом
screen-pdf - pdf файлы чека об оплате
screen-mail - скриншоты с запросом почты
screen-qr - скриншоты с qr кодом
screen-pdf - pdf файлы чека об оплате
country
Ввод страны производится в формате ISO-3166
Пример:
itesfrkzru и т.д.
Исключение: aw(all world)
Пример:
itesfrkzru и т.д.
Исключение: aw(all world)
service
Ввод сервиса вводится в формате нижнего регистра на английском языке
Пример:
vinted
subito
wallapop
Пример:
vinted
subito
wallapop
pattern
Ввод номера патерна (номер варианта одного скриншота) в формате числа
Пример:
12345
Пример:
12345
Структура "data"
Все возможные поля:
seller_name Имя продавца
title Название товара
price Цена товара
image Ссылка на изображение
name Имя пользователя
address Адрес получателя
link Ссылка для QR-кода
Получение дополнительной информации
Для получения дополнительной информации необходимо использовать флаг preview_*
1. preview_service
Флаг для получения всех шаблонов для данного service
Пример:
Request
{
"template": {
"service": "wallapop",
},
"preview_service": True,
"token": "Ваш токен",
}
"template": {
"service": "wallapop",
},
"preview_service": True,
"token": "Ваш токен",
}
→
Response
{
"matching_patterns": [
"screen-mail.spain.wallapop.pattern#1",
"screen-mail.italy.wallapop.pattern#1",
"screen-mail.portugal.wallapop.pattern#1",
"screen.spain.wallapop.pattern#1",
"screen.spain.wallapop.pattern#2",
"screen.spain.wallapop.pattern#3",
"screen.spain.wallapop.pattern#4",
"screen.italy.wallapop.pattern#1",
"screen.italy.wallapop.pattern#2",
"screen.italy.wallapop.pattern#3",
"screen.portugal.wallapop.pattern#1"
]
}
"matching_patterns": [
"screen-mail.spain.wallapop.pattern#1",
"screen-mail.italy.wallapop.pattern#1",
"screen-mail.portugal.wallapop.pattern#1",
"screen.spain.wallapop.pattern#1",
"screen.spain.wallapop.pattern#2",
"screen.spain.wallapop.pattern#3",
"screen.spain.wallapop.pattern#4",
"screen.italy.wallapop.pattern#1",
"screen.italy.wallapop.pattern#2",
"screen.italy.wallapop.pattern#3",
"screen.portugal.wallapop.pattern#1"
]
}
Request
{
"template": {
"service": "wallapop",
"country": "it"
},
"preview_service": True,
"token": TOKEN,
}
"template": {
"service": "wallapop",
"country": "it"
},
"preview_service": True,
"token": TOKEN,
}
→
Response
{
"matching_patterns": [
"screen-mail.italy.wallapop.pattern#1",
"screen.italy.wallapop.pattern#1",
"screen.italy.wallapop.pattern#2",
"screen.italy.wallapop.pattern#3"
]
}
"matching_patterns": [
"screen-mail.italy.wallapop.pattern#1",
"screen.italy.wallapop.pattern#1",
"screen.italy.wallapop.pattern#2",
"screen.italy.wallapop.pattern#3"
]
}
2. preview_pattern
Флаг для получения количества шаблонов определенного type country service
Пример:
Request
{
"template": {
"type": "screen",
"country": "it",
"service": "subito"
},
"token": "Ваш токен",
"preview_pattern": True
}
"template": {
"type": "screen",
"country": "it",
"service": "subito"
},
"token": "Ваш токен",
"preview_pattern": True
}
→
Response
{
"pattern_count": 3
}
"pattern_count": 3
}
3. preview_data
Флаг для получения полей необходимых для данного шаблона
Пример:
Request
{
"template": {
"type": "screen",
"country": "it",
"service": "subito",
"pattern": 1
},
"token": "Ваш токен",
"preview_data": true
}
"template": {
"type": "screen",
"country": "it",
"service": "subito",
"pattern": 1
},
"token": "Ваш токен",
"preview_data": true
}
→
Response
{
{
"fields": [
{
"id": "title",
"label": "Введите название товара",
"type": "text"
},
{
"id": "seller_name",
"label": "Введите имя продавца",
"type": "text"
},
{
"id": "price",
"label": "Введите цену",
"type": "text"
},
{
"id": "image",
"label": "Отправьте фото товара",
"type": "image"
}
]
}
}
{
"fields": [
{
"id": "title",
"label": "Введите название товара",
"type": "text"
},
{
"id": "seller_name",
"label": "Введите имя продавца",
"type": "text"
},
{
"id": "price",
"label": "Введите цену",
"type": "text"
},
{
"id": "image",
"label": "Отправьте фото товара",
"type": "image"
}
]
}
}