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.

GET /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();
GET /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();
GET /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();
POST /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();
PUT /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();
DELETE /listings/{id}

Archive listing (soft delete).

DELETE не е наличен в тестера на сайта. Използвайте собствен клиент с API ключа си, за да архивирате обяви.

Примерен отговор

{ "message": "Listing archived.", "data": { "id": 1, "status": "archived" } }

Грешки

401 — Invalid or missing API key
404 — Listing not found (wrong id / ad_number / external_id)
409 — external_id already exists on POST
422 — Validation error
429 — Rate limit or daily listing cap exceeded
{
  "message": "Daily listing creation limit reached.",
  "limit": 200
}

OpenAPI

openapi.yaml
Сравни сега