CARMAXING API v1
REST API за автокъщи — синхронизация на обяви с CARMAXING. Всички примери по-долу използват Axios.
Базов URL: http://proekt-damqnovi.online/api/v1
Влезте с фирмен акаунт и генерирайте API ключ, за да пускате реални заявки на тази страница (всички endpoints освен DELETE). Вход
Удостоверяване
API ключът се генерира от профила на фирмата: влезте → Настройки → API ключове → Генерирай ключ. Само фирмени акаунти имат достъп. Ключът се показва веднъж — запазете го на сигурно място.
Изпращайте ключа във всяка заявка:
Authorization: Bearer ac_xxxxxxxxxxxxxxxxxxxxxxxx # or X-API-Key: ac_xxxxxxxxxxxxxxxxxxxxxxxx
Лимити
При превишаване получавате HTTP 429 и заглавки X-RateLimit-*.
| Заявки в минута (на ключ) | 60 |
| Нови обяви на ден (на фирма) | 200 |
| Максимум резултати на страница | 50 |
PHP пример (Laravel HTTP client)
Всяка endpoint по-долу има PHP пример. С „Тествай“ пускате същата заявка с вашия API ключ.
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withToken('ac_YOUR_API_KEY')
->acceptJson()
->get('http://proekt-damqnovi.online/api/v1/catalog');
$response->throw();
$data = $response->json();
Идентификатори на обява
В URL можете да използвате вътрешно ID, ad_number (номер на обявата във вашия профил, напр. #1042) или external_id от вашата ERP система.
Полетата car_variant (допълнителна информация) и ad_name (заглавие) заменят единичното title — вижте примера за POST.
/catalog
Brands, models (hierarchical), fuel types, body types.
Примерен отговор
{
"brands": [
{
"id": 29,
"name": "Dodge",
"slug": "dodge",
"models": [
{ "id": 142, "name": "Challenger", "slug": "challenger", "type": "model", "children": [] }
]
}
],
"fuel_types": ["petrol", "diesel", "electric", "hybrid", "plug-in-hybrid"],
"transmissions": ["manual", "automatic", "semi-automatic"],
"drivetrains": ["fwd", "rwd", "awd", "4x4"],
"body_types": ["sedan", "suv", "coupe"]
}
PHP заявка
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withToken('ac_YOUR_API_KEY')
->acceptJson()
->get('http://proekt-damqnovi.online/api/v1/catalog');
$response->throw();
$data = $response->json();
/listings
List your company listings. Query: status, ad_number, external_id, per_page (max 50).
Примерен отговор
{
"current_page": 1,
"data": [
{
"id": 1,
"ad_number": 1001,
"external_id": "ERP-4521",
"brand_id": 29,
"model_id": 142,
"car_variant": "6.4 Shaker",
"ad_name": "пълен лизинг, даунпайп",
"title": "Dodge Challenger 6.4 Shaker пълен лизинг, даунпайп",
"price": 52900,
"price_on_request": false,
"currency": "EUR",
"year": 2016,
"status": "published"
}
],
"per_page": 25,
"total": 1
}
PHP заявка
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withToken('ac_YOUR_API_KEY')
->acceptJson()
->get('http://proekt-damqnovi.online/api/v1/listings?per_page=5');
$response->throw();
$data = $response->json();
/listings/{id}
Get one listing by id, ad_number, or external_id.
Примерен отговор
{
"data": {
"id": 1,
"ad_number": 1001,
"car_variant": "6.4 Shaker",
"ad_name": "пълен лизинг, даунпайп",
"brand": { "id": 29, "name": "Dodge" },
"model": { "id": 142, "name": "Challenger" },
"features": [{ "id": 12, "name_bg": "4x4" }],
"images": []
}
}
PHP заявка
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withToken('ac_YOUR_API_KEY')
->acceptJson()
->get('http://proekt-damqnovi.online/api/v1/listings/1001');
$response->throw();
$data = $response->json();
/listings
Create and publish a listing. ad_number is assigned automatically.
Request body
{
"external_id": "ERP-4521",
"brand_id": 29,
"model_id": 142,
"car_variant": "6.4 Shaker",
"ad_name": "пълен лизинг, даунпайп",
"description": "Отлично състояние...",
"price": 52900,
"price_on_request": false,
"currency": "EUR",
"year": 2016,
"mileage": 68420,
"fuel_type": "petrol",
"engine_power_hp": 485,
"transmission": "automatic",
"drivetrain": "rwd",
"body_type": "coupe",
"region_id": 1,
"city": "София",
"feature_ids": [1, 5, 12, 28]
}
Примерен отговор
{
"data": {
"id": 1,
"ad_number": 1001,
"slug": "dodge-challenger-6-4-shaker-abc123",
"title": "Dodge Challenger 6.4 Shaker пълен лизинг, даунпайп",
"status": "published",
"published_at": "2026-06-20T12:00:00.000000Z"
}
}
PHP заявка
<?php
use Illuminate\Support\Facades\Http;
$payload = [
'external_id' => 'docs-playground',
'brand_id' => 29,
'model_id' => 142,
'car_variant' => '6.4 Shaker',
'ad_name' => 'пълен лизинг, даунпайп',
'description' => 'Тестова обява от API документацията.',
'price' => 52900,
'price_on_request' => false,
'currency' => 'EUR',
'year' => 2016,
'mileage' => 68420,
'fuel_type' => 'petrol',
'city' => 'София',
];
$response = Http::withToken('ac_YOUR_API_KEY')
->acceptJson()
->post('http://proekt-damqnovi.online/api/v1/listings', $payload);
$response->throw();
$data = $response->json();
/listings/{id}
Partial update. Same fields as POST.
Request body
{ "price": 49900, "ad_name": "намалена цена, лизинг" }
Примерен отговор
{ "data": { "id": 1, "ad_number": 1001, "price": 49900, "title": "..." } }
PHP заявка
<?php
use Illuminate\Support\Facades\Http;
$payload = [
'price' => 49900,
'ad_name' => 'намалена цена, лизинг',
];
$response = Http::withToken('ac_YOUR_API_KEY')
->acceptJson()
->put('http://proekt-damqnovi.online/api/v1/listings/1001', $payload);
$response->throw();
$data = $response->json();
/listings/{id}
Archive listing (soft delete).
DELETE не е наличен в тестера на сайта. Използвайте собствен клиент с API ключа си, за да архивирате обяви.
Примерен отговор
{ "message": "Listing archived.", "data": { "id": 1, "status": "archived" } }
Грешки
401 — Invalid or missing API key404 — Listing not found (wrong id / ad_number / external_id)409 — external_id already exists on POST422 — Validation error429 — Rate limit or daily listing cap exceeded{
"message": "Daily listing creation limit reached.",
"limit": 200
}