Один эндпоинт

Объявления пишут все.
Лента должна выглядеть одинаково.

Продавцы снимают в гаражах, дворах и у торговых центров. Прогоните поток через один POST — и в выдаче все карточки на общем фоне, а рядом марка, модель и габариты для модерации.

curl -X POST https://api.auto.happyin.app/v1/frames \
  -H "Authorization: Bearer $CAR_API_KEY" \
  -F "image=@ad_88213.jpg" \
  -F "background=marketplace-neutral" \
  -F "plate=hide"
POST /v1/batches
{
  "images": ["s3://ads/88213.jpg", "… 9 999 more"],
  "background": "marketplace-neutral",
  "webhook": "https://api.company.com/hooks/car"
}
import { Car } from "@happyin/car";

const car = new Car({ apiKey: process.env.CAR_API_KEY });
const { image_url, vehicle } = await car.frames.create({
  image: fs.createReadStream("ad_88213.jpg"),
  background: "marketplace-neutral",
});
if (vehicle.model !== ad.model) flagForReview(ad.id);
Синхронный вызов: обработанный кадр и данные машины приходят в том же запросе.Батч до 10 000 кадров, вебхук по завершении. Повторные попытки на нашей стороне.SDK для Node и Python; те же поля, что и в REST.

Путь одного объявления от фото до карточки

входПродавец загрузил фотоГараж, двор, парковка — что угодно, включая вечернюю съёмку.
01Машина найденаМаска отделяет кузов от фона по контуру, стёкла и зеркала тоже.
02Машина опознанаМарка, модель, тип кузова и габариты — с оценкой уверенности.
03Фон заменёнВаша сцена, тень под ракурс кадра, номер скрыт или заменён.
выходВ лентеКадр 2048 px и JSON с данными — в вашу очередь публикации.
Ответ

Не только картинка. Ещё и данные для модерации.

Модель узнаёт машину на фотографии независимо от того, что продавец написал в заголовке. Сравнивайте одно с другим и ловите ошибки и подмены до публикации.

vehicle.make / modelМарка и модель с фотографии, а не из заголовка объявления.
vehicle.bodyТип кузова: седан, лифтбек, кроссовер, универсал.
vehicle.dimensions_mmДлина, ширина, высота, колёсная база, клиренс.
vehicle.confidenceУверенность модели — порог для автоматической модерации задаёте вы.
plateНайденный номер: скрываем, заменяем или оставляем.
{
  "id": "frm_01J9X4K2",
  "status": "done",
  "image_url": "https://cdn.auto.happyin.app/…jpg",
  "vehicle": {
    "make": "Skoda", "model": "Octavia",
    "body": "liftback", "confidence": 0.89,
    "dimensions_mm": {
      "length": 4689, "width": 1829,
      "height": 1470, "wheelbase": 2686
    }
  },
  "plate": "hidden",
  "background": "marketplace-neutral"
}
Дилерский шоурум с панорамными окнами на город
Один вызов
10k
кадров одним заданием
01Батчи до 10 000 кадров, вебхук по завершении, повторы при сбое — на нашей стороне.
02Оплата за обработанные кадры, цена под ваш объём.

Фон площадки — часть бренда

Загрузите свою сцену один раз через PUT /v1/backgrounds — дальше все объявления приходят на ней.

Фон библиотеки «marketplace-neutral»marketplace-neutral
Фон библиотеки «showroom-bright»showroom-bright
Фон библиотеки «street-soft»street-soft
Фон библиотеки «studio-grey»studio-grey
Подключение

Тестовый ключ — сразу, песочница бесплатна.

Ключ приходит на почту, песочница отвечает теми же полями, что и продакшн. Ваш разработчик подключит его сам; если нужна помощь — подключим вместе на созвоне.

Цену рассчитаем под ваш объём; для потока от 100 000 в месяц — отдельный тариф.

Как мы обращаемся с данными из формы — в политике конфиденциальности.