API Docs

Полная документация по API GabaPaint для генерации изображений

Основной запрос

Endpoint
POST https://gaba-project.com/gabapaint/generate

Основные варианты ответа

200
Успех! Ответ в формате .png
401
Неверно указанный или недейстивтельный токен
403
Отказано в доступе. IP отсутствует whiteliste или действие токена остановлено
422
Невозможно открыть URL отпрвленного изображения в поле image
500
Невозможно сгенерировать изображение в связи с неверно составленным запросом

Аутентификация

Доступ к сервису выдается в ручную. Для получения токена необходимо связаться с администрацией проекта

Telegram SVG Icon Связаться с администрацией
Arrow-down-right SVG Icon

Пример стандартного запроса

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)
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)
})
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);

Структура "template"

type
screen - скриншоты об оплате
screen-mail - скриншоты с запросом почты
screen-qr - скриншоты с qr кодом
screen-pdf - pdf файлы чека об оплате
country
Ввод страны производится в формате ISO-3166

Пример:

itesfrkzru и т.д.

Исключение: aw(all world)
service
Ввод сервиса вводится в формате нижнего регистра на английском языке

Пример:

vinted
subito
wallapop
pattern
Ввод номера патерна (номер варианта одного скриншота) в формате числа

Пример:

12345

Структура "data"

Все возможные поля:

seller_name Имя продавца title Название товара price Цена товара image Ссылка на изображение name Имя пользователя address Адрес получателя link Ссылка для QR-кода

Получение дополнительной информации

Для получения дополнительной информации необходимо использовать флаг preview_*

1. preview_service

Флаг для получения всех шаблонов для данного service
Пример:

Request
{
  "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"
  ]
}
Request
{
  "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"
  ]
}

2. preview_pattern

Флаг для получения количества шаблонов определенного type country service
Пример:

Request
{
  "template": {
    "type": "screen",
    "country": "it",
    "service": "subito"
  },
  "token": "Ваш токен",
  "preview_pattern": True
}
Response
{
  "pattern_count": 3
}

3. preview_data

Флаг для получения полей необходимых для данного шаблона

Пример:

Request
{
  "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"
      }
    ]
  }
}